我有一個數據庫設置,有許多用戶,其中有成員或管理員的角色。每個用戶有很多車。每輛車都有很多次滑行隨着CanCan,我如何限制基於關聯/子屬性的能力
那麼,如何限制用戶編輯時速表的能力,只有當他是父車的車主。
在康康舞:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.has_role? :admin
can :manage, :all
elsif user.has_role? :member
can :manage, Car, :user_id => user.id
can :manage, Timeslip, :car => {:user_id => user.id}
end
end
end
太行can :manage, Timeslip, :car => {:user_id => user.id}
是我需要一些幫助。
因爲Timeslip是汽車的協會/孩子,我需要檢查其父car.user_id =的康康舞USER.ID
我想我怎麼寫的,這是符合康康舞文檔,但在那裏我錯了嗎?
我得到'未定義的方法「user_ID的」爲無:NilClass' –
這意味着你有一個沒有車相關的時間片。 – Robin
我將此更改爲'can [:edit,:update,:destroy],Timeslip do | timeslip | timeslip.user ==用戶 結束,現在它的工作。我使用我的** has_one:user,:through =>:car **出於某種原因,它沒有找到汽車協會?但我可以看到它與調試...不知道 –