Rails - 通过另一个对象检查属性
Rails - Checking Attributes Through Another Object
我有三个模型,组织、工作和用户。见以下关系:
User.rb
has_many :organizations, :through => :jobs
has_many :jobs, dependent: :destroy
Organization.rb
has_many :users, :through => :jobs
has_many :jobs, dependent: :destroy
Job.rb
belongs_to :organization, :foreign_key => :organization_id
belongs_to :user, :foreign_key => :user_id
正如您所见,工作与组织和用户相关。每个工作都有一个附加的角色,可以是常规的、管理员的或管理的。我想做的是查看 current_user
是否是视图中组织 的管理员或经理。 如果他们在具有角色管理的组织中工作然后他们将成为经理等
我能够查询用户管理的组织:
includes(:jobs).where(jobs: { :user_id => current_user.id, :role => ["management", "admin"] }
但是,如果给定一个组织对象,我如何才能在视图中检查用户是经理还是管理员?
即if current_user.organization.admin?
非常感谢任何帮助。
根据您的查询,您可以在您的视图中使用类似这样的内容:
<% @organizations.each do |organization| %>
<% if organization.jobs.any? { |job| job.role == "manager" } %>
<%= # do something %>
<% end %>
<% end %>
我有三个模型,组织、工作和用户。见以下关系:
User.rb
has_many :organizations, :through => :jobs
has_many :jobs, dependent: :destroy
Organization.rb
has_many :users, :through => :jobs
has_many :jobs, dependent: :destroy
Job.rb
belongs_to :organization, :foreign_key => :organization_id
belongs_to :user, :foreign_key => :user_id
正如您所见,工作与组织和用户相关。每个工作都有一个附加的角色,可以是常规的、管理员的或管理的。我想做的是查看 current_user
是否是视图中组织 的管理员或经理。 如果他们在具有角色管理的组织中工作然后他们将成为经理等
我能够查询用户管理的组织:
includes(:jobs).where(jobs: { :user_id => current_user.id, :role => ["management", "admin"] }
但是,如果给定一个组织对象,我如何才能在视图中检查用户是经理还是管理员?
即if current_user.organization.admin?
非常感谢任何帮助。
根据您的查询,您可以在您的视图中使用类似这样的内容:
<% @organizations.each do |organization| %>
<% if organization.jobs.any? { |job| job.role == "manager" } %>
<%= # do something %>
<% end %>
<% end %>