rails form_for mongoid错误

时间:2012-11-24 08:12:26

标签: ruby-on-rails mongoid form-for

您好我有一个更新用户帐户的简单表格,这是我的控制器

def edit
  @users = User.find(params[:id])
end 

这是我的观点

<%= form_for :user do |f| %>

<%= f.label :first_name %> <br />
<%= f.text_field :name  ,:value => @users.name%><br />

<%= f.label :last_name %> <br />
<%= f.text_field :lname  ,:value => @users.lname%><br />

<%= f.label :email %> <br />
<%= f.email_field :email  ,:value => @users.email%><br />

<%= f.label :id %> <br />
<%= f.text_field :id  ,:value => @users.id%><br />

<br />
<%= f.submit ({:confirm => "Are you sure?"}) %>
<% end %>

当我点击提交时,我得到以下mongoid错误

Mongoid::Errors::InvalidFind in UsersController#edit

问题:   使用nil调用Document.find无效。

要点:   Document.find期望参数为1或更多id,如果提供1个id,则返回单个文档,否则提供多个id的文档数组。

分辨率:   最有可能的原因是将参数直接传递给find,并且参数要么不存在,要么访问它的密钥不正确。

我是rails的新手,这是我第一次使用mongoDB。任何输入都会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

尝试使用此表单

<%= form_for(@users) do |f| %>
   ...
   ...
<% end %>

错误的发生是因为您使用:user中的invalid find user controller