2015-09-12 29 views
1

我的关系为organizationsadvisorsorganization_advisorsorganization_advisors的字段为is_verified。我想找到任何advisors为具有is_verified为false的特定organization。像这样的事情(不工作)集合中的任何元素均为

<% unless @organization.advisors.is_verified.any? %> 
    Approve Advisors 
<% end %> 

我也试过:

<% unless @organization.organization_advisors.is_verified.any? %> 
    Approve Advisors 
<% end %> 

我需要知道的任何@organization顾问都没有is_verified。我将如何做到这一点?

回答

2

由于is_verifiedorganization_advisers就足够了检查其中是否存在:

<% unless @organization.organization_advisors.where(is_verified: false).any? %> 
    Approve Advisors 
<% end %> 

我假设你有以下结构:

class Organization 
    has_many :organization_advisors 
    has_many :advisors, through: :organization_advisors 
end 

class OrganizationAdvisor 
    belongs_to :organization 
    belongs_to :advisor 
end 

class Advisor 
    has_many :organization_advisors 
    has_many :organizations, through: :organization_advisors 
end 

在这里也可以看到类似的问题:how to receive objects by condition in connecting table

+0

我采取了颠簸,并提出你的。你的是正确的,它的工作原理。谢谢。 –

+0

不客气! –

+0

@CarySwoveland我的答案与颠簸不同,因为他的代码假设错误模型中的is_verified字段,所以我提出了正确的解决方案并阐明了数据库结构。 –

2

试试这个:

<% unless @organization.advisors.where(is_verified: false).any? %> 
    Approve Advisors 
<% end %> 
+0

非常坎坷。我需要将'@ organization.advisors'更改为'@ organization.organization_advisors',因为它是带有'is_verified'的表。万分感谢。 –