一系列参数正在提交给 Rails Controller :
"25"=>"true", "30"=>"false", "35"=>"true", "40"=>"true", "45"=>"true", "50"=>"true", "55"=>"true", "60"=>"true", "65"=>"false", "70"=>"true", "75"=>"true", "80"=>"false", "100"=>"true"
目标是循环:
@age_limits = [25,30,35,40,45,50,55,60,65,70,75,80,100]
并根据每个参数的值进行处理。
问题是引用参数的语法回避了我:
@age_limits.each do |limit|
puts params[:"#{limit}"]
if params[:"#{limit}"] == "true"
session[:demographic_agegroups] << params[:"#{limit}"]
puts session[:demographic_agegroups]
end
end
params[:"#{limit}"]
和 params[":#{limit}"]
都不允许访问该参数。前者将通过放入控制台返回值(编辑器 BBEdit 不认为它是正确形成的 Ruby),但不允许在其基础上进行处理。
Controller 如何正确访问参数并根据其值进行处理?
最佳答案
您缺少将 int
转换为 string
。
由于您的 params 键是字符串,因此您可以使用 params[limit.to_s]
。
此外,如果其基于 key 的 "keyX".to_sym
将为 :keyX
关于ruby-on-rails - 动态处理参数的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63735500/