web-dev-qa-db-fra.com

param est manquant ou la valeur est vide: utilisateur Rails 4

J'obtiens l'erreur suivante lorsque j'essaie de soumettre mon formulaire d'inscription. param est manquant ou la valeur est vide: utilisateur

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

Ci-dessous la demande:

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

Voici ma vue

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

<%= end %>
23
theJava

il n'y a pas params[:user] voilà, c'est ce que l'erreur vous dit. Vous attendez-vous peut-être à ce que vos params ressemblent à ça?

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

(J'ai ajouté une indentation pour mettre en évidence la structure).

Si c'est le cas, vous devez modifier le formulaire qui a soumis ces paramètres. Utilisez soit form_for @user, qui définira automatiquement les attributs name des balises d'entrée sur user[name], user[email] etc, ou définissez manuellement les noms de champ vous-même, sur user[name] etc.

23
Max Williams