如果 params[:attribute] == true 那么在控制器中做 "X"?
if params[:attribute] == true then do "X" in controller?
如果:someday
等于true
如何触发#x
条件?
db
t.boolean "someday"
控制器
# 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
控制台
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" = LIMIT 1 [["id", 15]]
Rendered shared/_error_messages.html.erb (0.2ms)
Rendered challenges/create.html.erb within layouts/application (48.5ms)
现在无论我如何调整 params[:someday] == true
#y
条件都会被触发。我试过了,params[:someday] == "true"
、params[:someday] == 1
、params[:someday] == "1"
、params[:someday] == "t"
你做错了。你应该做 params[:challenge][:someday]
因为 someday
在 challenge
散列中。下面的代码应该可以工作
def create
if params[:challenge][:someday] == "1"
#x
else
#y
end
end
params[:someday]
应该是 params[:challenge][:someday]
,因为您提交的值来自表单
def create
if params[:challenge][:someday]
#x
else
#y
end
end
会成功的
你在 html returns 1
中的 check_box
,如果你想要它 return 布尔值,那么按照下面的操作。此外,在控制器参数中应该是这样的:params[: challenge][:someday]
形式
<%= f.check_box :someday, {}, true , false %>
控制器
def create
if params[: challenge][:someday]
#x
else
#y
end
end
如果:someday
等于true
如何触发#x
条件?
db
t.boolean "someday"
控制器
# 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
控制台
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" = LIMIT 1 [["id", 15]]
Rendered shared/_error_messages.html.erb (0.2ms)
Rendered challenges/create.html.erb within layouts/application (48.5ms)
现在无论我如何调整 params[:someday] == true
#y
条件都会被触发。我试过了,params[:someday] == "true"
、params[:someday] == 1
、params[:someday] == "1"
、params[:someday] == "t"
你做错了。你应该做 params[:challenge][:someday]
因为 someday
在 challenge
散列中。下面的代码应该可以工作
def create
if params[:challenge][:someday] == "1"
#x
else
#y
end
end
params[:someday]
应该是 params[:challenge][:someday]
,因为您提交的值来自表单
def create
if params[:challenge][:someday]
#x
else
#y
end
end
会成功的
你在 html returns 1
中的 check_box
,如果你想要它 return 布尔值,那么按照下面的操作。此外,在控制器参数中应该是这样的:params[: challenge][:someday]
形式
<%= f.check_box :someday, {}, true , false %>
控制器
def create
if params[: challenge][:someday]
#x
else
#y
end
end