Wie wird #x
ausgelöst, wenn :someday
gleich true
ist?wenn params [: attribute] == true, dann "X" im controller?
db
t.boolean "someday"
Controller
# In new.html.erb user inputs challenge.name and can checkmark challenge.someday
def new
@challenge = Challenge.new
end
# If user checkmarks someday than do x otherwise do y (keep in mind conditional is triggered before challenge is created)
def create
if params[:someday] == true
#x
else
#y
end
end
Konsole
Started POST "/challenges" for 127.0.0.1 at 2016-06-03 14:04:01 -0400
Processing by ChallengesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Ii3RdJYAnOpT/OOkqVA74b8YD5suUA3Rf4Wegih65xSSU0r1c5DB0UCJVWcGcid3JtSt6fjzmfYpbWZtf2Dm/A==", "challenge"=>{"someday"=>"1", "name"=>"test"}, "button"=>""}
User Load (0.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 15]]
Rendered shared/_error_messages.html.erb (0.2ms)
Rendered challenges/create.html.erb within layouts/application (48.5ms)
Gerade jetzt, egal wie ich habe TWE Aked params[:someday] == true
der #y
Zustand wird immer ausgelöst. Ich habe versucht, params[:someday] == "true"
, params[:someday] == 1
, params[:someday] == "1"
, params[:someday] == "t"
Setzen Sie einen Debugger wie hebeln oder eine Logging-Anweisung, direkt über Ihr 'if' Erklärung. Wenn du denkst, dass du den Wert von ': irgendwann' gesetzt hast, um wahr zu sein, was ist sein tatsächlicher Wert in dieser Codezeile? –
Lege ich einfach "hebeln" über die Linie? –
Wenn ich Ihre Parameter anschaue, sehe ich ': irgendwann 'in einem': challenge 'Parameter. Was passiert, wenn Sie nach 'params [: challenge] [: sometime] == 1' suchen? –