Bob*_*Bob 2 activerecord ruby-on-rails ruby-on-rails-3
我的设置:Rails 3.0.9,Ruby 1.9.2
假设我在模型上全部找到了
@projects = Project.all
Run Code Online (Sandbox Code Playgroud)
现在,我想在刚返回的结果集中找到一条单独的记录,而不必进行另一个SQL调用。这行代码触发了一个新的SQL调用,如果可能的话,我想避免这样做,因为应该有一种方法可以从结果集中获取记录。
@projects.find(1)
Run Code Online (Sandbox Code Playgroud)
@projects
只是Project对象的一个数组,现在您可以简单地使用对数组进行操作的任何ruby运算符来查找所需的对象。
例如:
@projects.first {|item| item.id == 1}
Run Code Online (Sandbox Code Playgroud)
与您的示例相同。
您还可以使用类似:
@projects.select {|item| item.foo == 3}
Run Code Online (Sandbox Code Playgroud)
如果您知道可以匹配多个项目。
归档时间: |
|
查看次数: |
894 次 |
最近记录: |