rails 4 - 迭代查询结果

use*_*289 1 ruby ruby-on-rails ruby-on-rails-4

我在我的rails 4演示应用程序模型中构建了一个小函数来对搜索中找到的所有记录执行sql查询.它的工作原理如下:

def do_stuff(item_id)
  items = Widget.find_by item:id: item_id
  items.each do |t|
    #do stuff 
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是当只返回一个记录时,我收到以下错误:

undefined method `each' for #<Widget:0xb93eaa44>
Run Code Online (Sandbox Code Playgroud)

处理返回一个或零记录的情况的最佳方法是什么?

Eug*_*ene 5

尝试这样的事情:

items = Widget.where(item_id: item_id)
Run Code Online (Sandbox Code Playgroud)

无论找到多少记录,这都将返回一组记录.