rails中模型属性的动态插值

时间:2016-06-09 07:42:39

标签: ruby-on-rails ruby

您好我有一个包含这些属性的表产品

level_1
level_2
level_3
level_4

我的代码就像

if @product.level_1.present?
  # do something
elsif @product.level_2.present?
  # ...
....
end

而不是写if-elsif条件我试着写

[1,2,3,4].each do |i|
  if @product.level_"#{i}"
    # do something
  end
end

但它没有用,我理解的原因是因为插值会导致一个附加到模型属性的字符串,它不会接受。谁能建议我们怎么做?或者可以这样做吗?

1 个答案:

答案 0 :(得分:1)

你想做的事情就像是

[1, 2, 3, 4].each do |i|
  if @product.send "level_#{i}"
    # do something
  end
end