一系列参数正在提交给Rails控制器:
"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格式不正确(,但不允许在其基础上进行处理。
控制器如何根据其值正确访问参数和进程?
缺少将int
转换为string
的操作。
由于params键是字符串,因此可以使用params[limit.to_s]
。
此外,如果其基于密钥的"keyX".to_sym
将是:keyX