こんにちは、ユーザーのアカウントを更新するための簡単なフォームがあります。これが私のコントローラーです
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::Errors::InvalidFind in UsersController#edit
問題: Document.find を nil で呼び出すのは無効です。
概要: Document.find は、パラメーターが 1 つ以上の ID であることを想定しており、ID が 1 つ指定されている場合は単一のドキュメントを返します。それ以外の場合は、複数の ID が指定されている場合はドキュメントの配列を返します。
解決策: これはほとんどの場合、パラメーターが検索に直接渡されたことが原因であり、パラメーターが存在しないか、アクセス元のキーが正しくありません。
私は Rails の初心者で、mongoDB を初めて使用します。どんな入力でも役に立ちます、ありがとう。