2017-03-27 8 views
0

私は3つのモデル、組織、ジョブ、およびユーザーを持っています。あなたが仕事を組織に関連する見ることができるようRails - 別のオブジェクトを介して属性を確認する

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 %> 
関連する問題