views:

1763

answers:

2

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 

@admin 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

+2  A: 

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.

z3cko
ok as fred stated below, my patch is actually bollocks and his is the way to go ;) thanks!
z3cko
+2  A: 

I have submitted a patch to MongoMapper here:

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

Fred Wu
awesome! thanks a lot!
z3cko