2016-04-22 59 views
0

我想再次做两个检查数据库,我得到的方法错误。Rails 4 IF检查语法

<% if @person.subordinates.position.any == 'grad' %> 
     <h3>Neuro Grads</h3> 
     <table> 
     CONTENT 
     </table> 
    <% end %> 

,第二个是大致相同的内容,但具有双重检查...

<% if @person.subordinates.position.any == 'nn-grad' or 'nn-postdoc' %> 

在我需要检查是否有被列为grad任何@person.subordinates.position第一区在数据库中。在第二个领域,我需要检查它是否是两个位置之一。

+0

写错误,请 – Ilya

+0

**未定义的方法'位置”的#<的ActiveRecord ::协会:: CollectionProxy []> ** 它正在调用我发布的帖子。 – lostrennie

回答

1

看起来像position只是协会。尝试映射,并使用正确的语法Enumerable#any?

if @person.subordinates.map(&:position).any? {|p| p == 'grad'} 

和:

if @person.subordinates.map(&:position) 
         .any? {|p| p == 'nn-grad' || p == 'nn-postdoc' }