Вопрос

когда я пытаюсь запустить базовые примеры разработки с текущими версиями 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 %>

оба будут работать.до сих пор мне не ясно, является ли это проблемой рельсов или монгомаппера, но для тех, кто сталкивается с этим, вот обходной путь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top