10

I am using Devise and interested in using Pundit but cannot find much on if it should be integrating with Rolify or if it is stand alone. CanCanCan works nicely with Rolify and I like the roles model. Am I missing a major reason why Pundit and Rolify do not seem to be used together a lot?

4

2 回答 2

45

为什么不一起使用呢?它们可以以这样的方式轻松使用

class OrganisationPolicy
  def initialize(user, organisation)
    @user = user
    @organisation = organisation
  end

  def index?
    @user.has_role? :admin
  end

  def show?
    @user.has_role?(:admin) || @user.organisation == @organisation
  end
end

事实上,不耦合的东西很好,rolifypundit不是设计失败;)

于 2015-02-04T13:44:27.067 回答
1

我最近使用 devise 将 Pundit gem 与 Rails 4 一起使用。根据我的经验,Pundit 是独立系统,不依赖于 Rolify。

我没有使用 Rolify,而是创建了迁移以在现有的设计用户表中添加角色,这可以帮助您将角色分配给用户并检查他们拥有哪些角色。

请看一下我为我的项目创建的架构:

 create_table "users", force: true do |t|
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0,  null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.datetime "created_at"
    t.datetime "updated_at"
    **t.boolean  "is_admin"
    t.boolean  "is_daily_user"

为用户角色添加的位置和is_admin字段。is_daily_user

希望这可以帮助!

于 2014-10-05T20:01:17.323 回答