【问题标题】:Rails - Checking Attributes Through Another ObjectRails - 通过另一个对象检查属性
【发布时间】:2017-03-27 00:49:24
【问题描述】:

我有三个模型,组织、工作和用户。看下面的关系:

用户.rb

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

组织.rb

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

工作.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?

非常感谢任何帮助。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 activerecord


    【解决方案1】:

    根据您的查询,您可以在视图中使用类似的内容:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 2021-09-30
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多