Rails在表中查找值

时间:2012-11-01 20:54:05

标签: ruby-on-rails ruby activerecord loops block

是否可以在整个表上调用 include?函数,如下所示?

<% @user.games.each do |g|
   @@latestround = g.rounds.order('created_at DESC').first
%>
    <% if @@latestround.submittedpictures.isFinalPicture.include?(true) %>
        <p>FinalPicture has been played!</p>
    <% end %>
<% end %>

我得到的问题是,只有当我在提交的图片上放置一个块然后遍历该表的每个记录时,它才有效。但是我想一次查看整个表,看看'isFinalPicture'列是否包含'false'值。

有什么想法吗?

以下片段有效,但它不是我想要的方式(如果圆形碰巧有更多'真'FinalPictures,我会得到更多的线)

<% @@latestround.submittedpictures.each do |s| %>
    <% if s.isFinalPicture == true %>
         <p>Final Picture has been played!</p>
    <% end %>
<% end %>

1 个答案:

答案 0 :(得分:1)

你可以像

那样为它做一个范围
class SubmitedPricture << ActiveRecord::Base

  scope :final_pictures, where('isFinalPricture = ?', true)
end

然后你可以看到是否只有一个查询

latestround.submittedpictures.final_pictures.any?

此外,您应该遵循Rails的惯例来命名您的模型和其他所有内容。像提交的图片一样,应该提交_pictures