0
CanCanCan允許我們通過abilities在Rails中快速設置授權。 best practice是使用哈希條件。但是, scopes/blocks允許更復雜的能力創造。可能在CanCanCan has_many關係中使用散列能力?
我想知道是否有一種方法可以將哈希能力用於has_many關係。例如,給定一個has_one創建者和has_many管理員的事件(並且可以更新事件),我相信這個範圍將起作用。
can [:update], Event do |event|
event.creator.id == user.id or event.admins.where(user_id: user.id).first.id == user.id
end
我們可以轉換爲使用散列嗎?
can [:update], Event, creator: { user_id: user.id }
can [:update], Event, admins: { user_id: user.id } #<<< Will this work? Any gotchas?
而且,這將是不錯的散列或一行代碼,但我不能找到一種方法,使這項工作語法。謝謝!