Ich versuche, Kapitel 11 in Ruby on Rails Tutorial Buch zu tun, und wenn ich versuche, den Integrationstest in Listing 11.33 zu tun, bekomme ich zwei Fehler beide sagen, dass " param fehlt oder der Wert ist leer: user ". Es listet dann zwei Zeilen in der Benutzer-Controller-Definition auf, die erste bezieht sich auf die user_params und die zweite bezieht sich auf die create-Aktion im Controller. Ich schaute mir einige andere Fragen an und basierend auf den Antworten versuchte ich, den require (: user) -Teil der user_params-Definition zu entfernen, was dazu führte, dass die Integrationstests von zwei Fehlern zu Fehlern übergingen. Aber ich möchte das require (: user) nicht aus der user_params-Definition entfernen. Weiß jemand, warum ich diesen Fehler bekomme? Hier ist der Abschnitt des Tests, wo der Fehler erstellt wird:Ruby on Rails Tutorial - Kapitel 11 - Fehler beim Integrationstest Beispiel
test "valid signup information with account activation" do
get signup_path
assert_difference 'User.count', 1 do
post users_path, params: { user: { name: "Example User",
email: "[email protected]",
password: "password",
password_confirmation: "password" } }
end
und hier ist die Definition für user_params, die mit Ausnahme dieser Test funktioniert
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation)
end