开发者

mongomapper, rails3 edge: undefined method `to_key' on form_for

when i am trying to get the basic devise examples running with current git versions from rails, mongomapper and devise, i have the following error appearing:

undefined method `to_key' for #<Admin:0x23dee04> 

here is my actual source:

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 

@ad开发者_如何学运维min is the currently logged in user (@admin= current_admin) the same error occurs when trying to use @admin=Admin.first in the controller

i am not quite sure if this is a mongomapper problem, might also be rails3 related... thanks for any pointers...

the same happens if i am using the erb equivalent, see

<%= form_for @admin, :url => { :action => "create" } do |fr| %>
<%= fr.text_field :sign_in_count %> 
<% end %>

here is the full error output: http://pastie.org/871850


I have submitted a patch to MongoMapper here:

http://github.com/fredwu/mongomapper/commit/6e5e531312ef98c30e33286a1f80dd000468ed07


ok, here is a fix:

1 fix in the model

def to_key
  self.keys.to_a
end

2 fix in the view

<%= form_for :admin, @admin, :url => { :action => "create" } do |f| %>
    <%= f.text_field :sign_in_count %>
<% end %>

both will work. still it's not clear to me if this is a rails or mongomapper issue, but for anyone else running into this, here is a workaround.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜