用于动态处理参数的语法



一系列参数正在提交给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

最新更新