2017-03-27 3 views
0

세 개의 모델, 조직, 작업 및 사용자가 있습니다. 당신이 작업은 조직에 관련된 볼 수레일즈 - 다른 객체를 통해 속성 검사하기

belongs_to :organization, :foreign_key => :organization_id 
belongs_to :user, :foreign_key => :user_id 

그래서

has_many :organizations, :through => :jobs 
has_many :jobs, dependent: :destroy 

Organization.rb

has_many :users, :through => :jobs 
has_many :jobs, dependent: :destroy 

에게 Job.rb을

User.rb : 아래의 관계를보기 및 사용자. 모든 직무에는 정규직, 관리자 또는 경영직 인 역할이 부여됩니다. 내가 뭘 하려는지는 current_user이보기의 조직 에 대한 관리자 또는 관리자인지 확인합니다. 그들이 역할 관리가 조직 내에서 작업을하는 경우 그들은 내가 수 있었다 무엇

는 사용자가 사용하여 관리하는 조직을 위해 쿼리되는 등, 관리자가 될 것입니다 :

includes(:jobs).where(jobs: { :user_id => current_user.id, :role => ["management", "admin"] } 

그러나 조직 개체를 사용하여 사용자가 관리자인지 관리자인지 어떻게 확인할 수 있습니까?

if current_user.organization.admin?

어떤 도움을 크게 받고있다.

답변

1

당신이보기에이 같은 것을 사용할 수 있습니다 귀하의 요청에 이어 :

<% @organizations.each do |organization| %> 
    <% if organization.jobs.any? { |job| job.role == "manager" } %> 
    <%= # do something %> 
    <% end %> 
<% end %>