mongomapper, край рельсов3:неопределенный метод to_key в form_for
-
20-09-2019 - |
Вопрос
когда я пытаюсь запустить базовые примеры разработки с текущими версиями git из рельсов, mongomapper и devise, у меня появляется следующая ошибка:
undefined method `to_key' for #<Admin:0x23dee04>
вот мой фактический источник:
4: = form_for @admin, :url => admins_path do |f|
5: - field_set_tag 'Update my email' do
6: %p= f.text_field :email
7: %p= error_message_on @admin, :email
@Admin - это в настоящее время регистрированный в пользователе ( @admin = current_admin) Такая же ошибка возникает при попытке использовать @admin = admin.first в контроллере
Я не совсем уверен, что это проблема Mongomapper, также может быть связана с Rails3 ...спасибо за любые указания...
то же самое происходит, если я использую эквивалент erb, см.
<%= form_for @admin, :url => { :action => "create" } do |fr| %>
<%= fr.text_field :sign_in_count %>
<% end %>
вот полный вывод ошибки: http://pastie.org/871850
Решение
Я отправил патч для MongoMapper здесь:
http://github.com/fredwu/mongomapper/commit/6e5e531312ef98c30e33286a1f80dd000468ed07
Другие советы
ок, вот исправление:
1 исправление в модели
def to_key
self.keys.to_a
end
2 исправления в представлении
<%= form_for :admin, @admin, :url => { :action => "create" } do |f| %>
<%= f.text_field :sign_in_count %>
<% end %>
оба будут работать.до сих пор мне не ясно, является ли это проблемой рельсов или монгомаппера, но для тех, кто сталкивается с этим, вот обходной путь.