10

私はDeviseを使用しており、Punditの使用に興味がありますが、Rolifyと統合する必要があるのか​​ 、それともスタンドアローンなのかについてはあまりわかりません. CanCanCan は Rolify とうまく連携します。ロール モデルが気に入っています。Pundit と Rolify があまり一緒に使用されていないように見える主な理由を見逃しているのでしょうか?

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 を使用して Rails 4 で Pundit gem を使用しました。私の経験によれば、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 に答える