0

是否可以调用包含?整张桌子上的功能,像这样?

<% @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”的值。

有任何想法吗?

以下片段有效,但不是我想要的方式(如果回合碰巧有更多“真实”最终图片,我会得到更多行)

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

1 回答 1

1

你可以为它做一个范围

class SubmitedPricture << ActiveRecord::Base

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

那么您可以查看是否只有一个查询

latestround.submittedpictures.final_pictures.any?

此外,在命名模型和其他所有内容时,您应该遵循 Rails 的约定。喜欢提交的图片应该提交_图片

于 2012-11-01T21:00:40.877 回答