クラブのメンバーシップの has_many 関係を想像してみてください。
end
class Club < ActiveRecord::Base
has_many :memberships, :dependent => :destroy
has_many :users, :through => :memberships
validates :name, :is_enrollable, :presence => true
end
class Membership < ActiveRecord::Base
belongs_to :club
end
また、Club のis_enrollable
テーブルにブール フィールドがあるとします。true の場合、ユーザーはそのクラブに関連付けられたメンバーシップを作成できます。false の場合、管理者のみがメンバーシップ レコードを作成できます。
私の質問は、これを反映するように CanCan の capability.rb をどのように設定しますか?
コメント: クラブ テーブルのフィールドがメンバーシップ レコードを作成する機能を制御するという点で、少し変わっています。これは機能しません:
can :create, Membership, :club => {:is_enrollable => true}
...メンバーシップは作成前に存在しないためです。 編集:そうではありません-CanCanは、承認する前に保存されていないレコードで機能します。以下の回答を参照してください。