代码之家  ›  专栏  ›  技术社区  ›  z3cko

mongomapper,rails3 edge:form上未定义的方法“to-key”

  •  0
  • z3cko  · 技术社区  · 16 年前

    当我试图使用rails、mongomapper和devieve中当前git版本运行基本的devieve示例时,出现以下错误:

    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) 在 控制器

    我不太确定这是否是一个Mongomapper问题,也可能是 Rails3相关… 谢谢你的指点…

    如果我使用等效的erb,也会发生同样的情况,请参见

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

    以下是完整的错误输出: http://pastie.org/871850

    2 回复  |  直到 15 年前
        1
  •  2
  •   Fred Wu    16 年前
        2
  •  1
  •   z3cko    16 年前

    好的,这里有一个解决方案:

    模型中的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 %>
    

    两个都能用。我仍然不清楚这是不是Rails或MongoMapper的问题,但是对于其他遇到这个问题的人来说,这里有一个解决方法。