查找具有附加到实例的角色的用户

时间:2018-04-23 19:07:43

标签: ruby-on-rails rolify

我正在开发一个拥有3种类型用户的网站和一个拥有每种类型用户的“案例”。 我没有定义Facilitator,Customer和Diagnostician Models,而是使用Rolify将它们定义为Roles。仍然不确定这是最好的解决方案。

无论如何,我有2个型号: 用户 情况下

class Case < ApplicationRecord
    resourcify
end

class User < ApplicationRecord
  rolify strict: true
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  belongs_to :role

  after_create :assign_default_role
  def assign_default_role
    self.add_role "newuser" if self.roles.blank?
  end

end

3个角色: 主持人 顾客 诊断医生

对于每种情况,我将定义一个且只有一个角色。

为了进行实验,我创建了一个用户和一个案例,并为此用户提供了“促进者”角色。

我正在尝试从案例中检索具有“辅导员”角色的用户,但我无法使用:

Case.first.roles.where(name: "facilitator").first

Case.first.find_roles(:facilitator)

我找不到阅读Rolify Wiki的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这样的东西:

user= User.with_role(:facilitator).first

我假设你有一个角色的连接表,可能叫做:users_roles