这个问题很简单,但我遇到过几次这个问题。
假设您执行以下操作:
cars = Vehicle.find_by_num_wheels(4)
cars.each do |c|
puts "#{c.inspect}"
end
如果汽车是一个数组,这可以正常工作,但如果数据库中只有一辆汽车,则会失败。显然我可以做一些类似“if !cars.length.nil?”的事情。或者在调用 .each 之前检查汽车对象是否是一个数组,但每次都这样做有点烦人。
是否有类似于 .each 的东西可以为您处理此检查?或者是否有一种简单的方法可以将查询结果强制转换为数组而不考虑大小?
最佳答案
您可能正在寻找
cars = Vehicle.find_all_by_num_wheels(4)
动态
find_by_
方法只返回一个元素,你必须使用 find_all_by_
返回多个。
关于ruby-on-rails - 如何在 Ruby On Rails 中迭代事件记录对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/976473/