这个问题很简单,但是我已经遇到过几次了。

假设您执行以下操作:

cars = Vehicle.find_by_num_wheels(4)

cars.each do |c|
  puts "#{c.inspect}"
end


如果cars是一个数组,则此方法工作正常,但如果数据库中仅一辆汽车,则失败。显然,我可以执行类似“ if!cars.length.nil?”的操作。或在调用.each之前检查cars对象是否为数组,以其他方式进行检查,但这每次都很麻烦。

是否有类似于.each的内容为您处理此检查?还是有一种简单的方法可以将查询结果强制为数组而不管其大小如何?

最佳答案

您可能正在寻找

cars = Vehicle.find_all_by_num_wheels(4)


动态find_by_方法仅返回一个元素,并且您必须使用find_all_by_返回多个元素。

07-26 05:18
查看更多