什么是一种简洁的方式表达'如果一个阵列存在然后做'

时间:2014-10-17 15:02:21

标签: ruby-on-rails ruby

是否有更简洁的方式表达以下内容:

if Model.all
  array = Model.all
  array.each do |a|
    a.info
  end
end

就我而言,Model.all是辅助方法(get_all_of_those())。

在视图中,我根据结果在表格中显示数据。 a.info可能是

"<div class='row'>#{a.name}</div>"

3 个答案:

答案 0 :(得分:5)

Model.all总是很简单,并且总是一个类似于数组的对象(严格来说,它是rails 4中的ActiveRecord :: Relation对象; rails 3中的一个数组)。你可以这样做:

Model.all.each do |a|
  a.info
end

如果没有模型,循环将不会执行一次。

(但请注意,此代码对模型没有任何兴趣,因此您需要更新您的问题:您希望最终结果是什么?您有可能正在寻找{ {1}})

答案 1 :(得分:2)

试试这个:

  Model.all.find_each do |a|
    a.info
  end

在文档中阅读有关find_each的更多信息。

答案 2 :(得分:2)

如果info是数据库中的字段,则可以使用

更有效地执行此操作
array = Model.pluck(:info)