1

私はモデル以外に2つのモデルを持っていUserます。HotelRoom

シナリオは次のとおりです。

hotel :has_many => :rooms

関連するホテルがユーザーに割り当てられている場合、ユーザーは部屋を作成できます。ルームが保存されるまで不明なため、 でcreate roomアクションの承認を実装するにはどうすればよいですか?abilityhotel_id

の下にcan?メソッドを実装できますが、 に実装することを期待しています。この問題はパターンで解決する必要がありますが、どうにかして別のコントローラー (ネストされていない) にルームを作成する必要があります。create actionrooms controllerabilitynested_resources

4

1 に答える 1

1

https://github.com/ryanb/cancan/wiki/Nested-Resourcesnested_resourcesで概説されているように機能を使用できます、これは、https: //github.com/ryanb/cancan/wiki/authorizing-controller-actions

編集 - コメントで要求されているように、ability.rb の例で更新されました。

can :create, Room, :hotel => { :user_id => user.id }
于 2013-09-28T15:10:19.057 に答える