0

当我尝试从 rails、mongomapper 和 devise 获取使用当前 git 版本运行的基本设计示例时,出现以下错误:

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

4

2 回答 2

2

我在这里向 MongoMapper 提交了一个补丁:

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

于 2010-03-17T07:55:12.240 回答
1

好的,这是一个修复:

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 问题,但对于遇到此问题的其他人来说,这是一个解决方法。

于 2010-03-16T14:14:01.730 回答