登録フォームを送信しようとすると、次のエラーが表示されます。パラメーターが欠落しているか、値が空です:ユーザー
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 %>
そこには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]
などに設定します。