在Rails环境中,我从表单中获取了一个params哈希。 除了其他人,比如
params[:vocab][:name]
params[:vocab][:priority]
我有3个字段tag_1,tag_2,tag_3,其值存储在
中params[:vocab][:tag_1]
params[:vocab][:tag_2]
params[:vocab][:tag_3]
我的问题是: 我可以迭代这三个哈希键吗? 我想做某事......
for i in 1..3 do
iterator = ":tag_" + i.to_s
puts params[:vocab][iterator.to_sym]
end
但这不起作用。
答案 0 :(得分:3)
您的方法不起作用,因为:
':tag_2'.to_sym
# => :":tag_2"
如果从":tag_" + i.to_s
你也可以这样做,迭代键:
[:tag_1, :tag_2, :tag_3].each { |key| puts params[:vocab][key] }
答案 1 :(得分:3)
您可以通过插值构造符号;使用冒号为字符串添加前缀将导致Ruby将其解释为符号。
(1..3).each do |i|
puts params[:vocab][:"tag_#{i}"]
end