I持って次のモデル:RailsのCancancan - 許可ネストされた団体
class Party
belongs_to :user
has_many :party_co_hosts
accepts_nested_attributes_for :party_co_hosts
has_many :co_hosts, through: :party_co_hosts
class CoHost
belongs_to :party
belongs_to :co_host, foreign_key: :user_id
class User
パーティーは、ユーザ(ホスト)との詳細を編集することができるはずの共同ホストを割り当てることができるホストに属している必要があります共同ホストの追加/削除はできません。私はその能力をCancancanで定義するのに苦労しています。
can :update, Party, user_id: user.id
これは、パーティーに欲しいものを行うためのホストカートブランチを与えます - それは良いことです。
can :update, Party do |p|
p.co_hosts.include? user
end
これは、共同ホストにも良いですがパーティーを編集する機能を与えるだろうが、私はそれは、ネストされたparty_co_hosts
関連を含めたくありません。
を削除し、親にネストされた関連付けを許可するのではなく、別のコントローラで強制的にparty_co_hosts
を作成する必要がありますか?私が見逃している他のアイデア?ただアイデアは、おそらく助けることができる