web-dev-qa-db-ja.com

paramがないか、値が空です:user Rails 4

登録フォームを送信しようとすると、次のエラーが表示されます。パラメーターが欠落しているか、値が空です:ユーザー

def user_params
   params.require(:user).permit(:name, :email, :password, :password_confirmation)
end

リクエストは次のとおりです。

{"utf8"=>"✓",
 "authenticity_token"=>"YX0+4AeWlGWJiQZgbhV9cxi6TUCoibZfwh95BrK9iCQ=",
 "name"=>"asasa",
 "email"=>"[email protected]",
 "password"=>"[FILTERED]",
 "confirm_password"=>"[FILTERED]",
 "commit"=>"Register"}

以下は私の見解です

<%= form_tag users_path, class: "form-horizontal", id: "signupform" do %>

<%= end %>
23
theJava

そこにはparams[:user]がありません、それがエラーがあなたに伝えていることです。あなたはおそらくあなたのパラメータがこのように見えることを期待していますか?

{"utf8"=>"✓",
 "authenticity_token"=>"YX0+4AeWlGWJiQZgbhV9cxi6TUCoibZfwh95BrK9iCQ=",
 "user" => {"name"=>"asasa",
            "email"=>"[email protected]",
            "password"=>"[FILTERED]",
            "confirm_password"=>"[FILTERED]"
 },"commit"=>"Register"}

(構造を強調するためにインデントを追加しました)。

その場合、これらのパラメータを送信したフォームを修正する必要があります。 form_for @userを使用して、入力タグのname属性をuser[name]user[email]などに自動的に設定するか、フィールド名を手動でuser[name]などに設定します。

23
Max Williams