2012-11-24 84 views
1

嗨,我有一個簡單的形式在這裏更新用戶的帳戶是我的控制器軌的form_for mongoid錯誤

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的文檔數組。

解決方案: 這很可能是由於將參數直接傳遞給查找引起的,並且該參數要麼不存在,要麼從其訪問的密鑰不正確。

我是相當新手與鐵軌,這是我第一次與mongoDB刺。任何輸入都會有所幫助,謝謝。

+0

..嘗試使用<%=的form_for @users做invalid find | F | %> – az7ar

回答

0

嘗試使用這種形式

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

的錯誤出現,因爲你正在使用:user在你user controller