###前提・実現したいこと
編集者は自分がアサインされているアイテムのみ編集できるようにしたいのですが、abilityでの書き方がわからないので教えて下さい。
user_itemにデータがあるものがアサイン済みという前提でお願いします。
model
class User < ActiveRecord::Base belongs_to :role has_many :user_items, class_name: "UserItem" has_many :items, through: :user_items end class Item < ActiveRecord::Base has_many :user_items, class_name: "UserItem" has_many :users, through: :user_items end class UserItem < ActiveRecord::Base belongs_to :user belongs_to :item end class Role < ActiveRecord::Base has_many :users end
ability
class Ability include CanCan::Ability def initialize(user) user ||= User.new if user.admin? #管理者 can :manage, :all elsif user.editor? #編集者 can :read, Item can :update, Item, #ここがわからないです。 elsif user.customer? #顧客 can :read, Item end end end
あなたの回答
tips
プレビュー