【问题标题】:rails form_for mongoid errorrails form_for mongoid 错误
【发布时间】:2012-11-24 08:12:25
【问题描述】:

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

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。任何意见都会有所帮助,谢谢。

【问题讨论】:

  • .. 尝试使用

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


【解决方案1】:

尝试使用这种形式

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

出现错误是因为您在 user controller 中使用了 :userinvalid find

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2015-04-30
    相关资源
    最近更新 更多