如何使用easy_roles gem按角色查询?

时间:2014-03-03 09:41:00

标签: ruby-on-rails ruby-on-rails-4

我正在使用带有Rails 4的easy_roles,但是当我尝试选择具有某个角色的所有用户时,我有以下错误:“undefined method`with_role'”。

的Gemfile:

gem "easy_roles"

应用程序/模型/ user.rb:

easy_roles :roles

迁移:

add_column :users, :roles, :string, :default => "--- [customer]"

控制器/ users_controller:

@users = User.with_role("employee")

2 个答案:

答案 0 :(得分:0)

您应该将easy_roles :roles行添加到 位于User的{​​{1}}模型中。

现在,您似乎已将其添加到错误的位置(app/models/user.rb)。

在完成README(基本设置部分)中的所有steps described后,您还必须运行:

modules/user.rb

即使自述文件忘记说明了这一点。

答案 1 :(得分:0)

虽然此代码为in the easy_role codebase and appears well tested,但我也从来没有为我开箱即用。

只需将这个角色放在你的班级中,你应该设置:

scope :with_role, proc { |r|
  query = "#{self.table_name}.roles LIKE " + ['\'%',r,'%\''].join
  where(query)
}