我正在使用带有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")
答案 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)
}