仅当用户是admin时才在模型中调用方法

时间:2013-02-24 23:35:18

标签: ruby-on-rails ruby rails-admin

我有piece of code in a model that I need but that breaks RailsAdmin

class Item < ActiveRecord::Base
  serialize :properties, ActiveRecord::Coders::Hstore
end

由于我还没有找到解决问题的解决方案,我计划在用户不是管理员时才运行这行代码:

在控制器中,我可以通过调用:

来实现
unless current_user.role?("Admin") # CanCan is installed

如何在Item模型中实现这样的功能?或者有更好的方法(我有一种感觉)?

1 个答案:

答案 0 :(得分:0)

看看cancan + rolify你可以使用current_user.has_role吗? :管理员

修改

Devise为您提供方法current_user
Rolify为您提供方法has_role? :admin
Cancan为您提供can? :destroy, @project

等方法

关于cancan的注意事项:要使用can and not can方法,你需要玷污能力类