継承されたリソースと組み合わせた CanCan でのモデルの 3 レベルのネストに問題があります。すべてを 2 レベルまでネストする必要があると読みましたが、すべてをaccount
モデルの下に配置する必要があったため、CanCan でこれを実行してみました。
load_and_authorize_resource :account
load_and_authorize_resource :project, :through => :account
load_and_authorize_resource :model, :through => :project
それを上書きしているように、@project の値を持つ @account 変数が得られます。@project は本来あるべきものであり、@model もそうです。それは私のせいですか、CanCan's、継承されたリソースですか、それとも CanCan が 3 レベルのネストをサポートしていないだけですか? また、ModelsController の IR でこれを行います。
belongs_to :account, :finder => :find_by_name! do
belongs_to :project, :finder => :find_by_name!
end
load_and_
別の奇妙なことは、CanCan の定義からその部分を削除したときです。その場合は機能しますが、その部分を使用しないと危険になる可能性があることを読みましたload
.
のみを使用できますか、authorize_resource
または CanCan で何かを行う必要がありますか?