参数名称中的变量

时间:2015-11-28 06:24:24

标签: ruby-on-rails ruby

如何将变量i放在参数名称中?

for i in 1..4
  if !params[:option#{i}].empty?
    @option#{i} = true
  end
end

尝试制作:if !params[:option1].empty?@option1 = true

我尝试使用{{i}} \i #{i}

更新

正如@Cary指出的那样,看看:

也很有用
params = { :option1=>[], :option2=>[2,3], 'cat'=>'9lives', :option3=>[4] }

2 个答案:

答案 0 :(得分:4)

您可以这样做:

for i in 1..4
  if !params["option#{i}".to_sym].empty?
    instance_variable_set("@option#{i}", true)
  end
end

希望它有所帮助!

答案 1 :(得分:1)

您可以尝试:

!params["option#{i}".to_sym].empty?

这将首先替换字符串中 i 的值,然后将整个字符串转换为符号(使用to_sym

完整代码

for i in 1..4
  if !params["option#{i}".to_sym].empty?
  end
end