0

所以我有一个名为 Project 的模型,其中有一个名为 Proposal 的嵌套模型(因此每个项目都有多个提案,每个提案只属于一个项目)。

我有一个名为“获胜”的提案专栏,它只是检查是否有一个提案为该项目赢得了胜利。我想在项目的 Show 页面上引用它,但对代码有点困惑。

我真正想做的是检查是否有任何提案具有“获胜”状态

这是我正在为项目的显示视图尝试的,但它不起作用:

<% if @project.proposals.winning %>
   SUCCESSFUL
<% end %>

我觉得这应该是非常基本的,但我很难弄清楚,谢谢!

4

3 回答 3

1

改用它:

<% if @idea.proposals.count{|a| a.winning } > 0 %>

或者甚至更好地在 Idea 模型中为它​​创建一个方法:

def has_winning?
  proposals.count{|a| a.winning } > 0
end
于 2012-07-12T19:20:59.957 回答
1

这是理想的候选人:

<% if @idea.proposals.any? {|proposal| proposal.winning? } %>

可枚举.any? 如果对于任何数组元素,块返回 true,则返回 true。

于 2012-07-13T10:51:53.103 回答
0

好的,在另一篇文章中找到了这段代码,它似乎正在工作,但不确定这是否是最好的方法:

<% if @idea.proposals.map(&:winning).flatten %>
于 2012-07-12T19:14:10.403 回答