これは、あなたの割り当てモデルでは(http://wiki.rubyonrails.org/howtos/db-relationships/polymorphic)
のためのポリモーフィック関連を使いたいものです、あなたは次の操作を行います。
has_many :permissions, :as => :subject
そして、あなたの許可モデルでは、あなたはこれを行うだろう。
belongs_to :subject, :polymorphic => true
ただし、暗黙的に機能するには、subject_classフィールドの名前をsubject_typeに変更する必要があります。これがすべて完了したら、あなたはRailsから無料で頼んだものすべてを手に入れることになります。新しいPermissionを作成するときにsubject_typeを渡す必要はありません。あなたは次のような許可を作成することができます。:subject_typeはあなたのために自動的に記入されます:
assignment = Assignment.create(:title => "My Assignment")
permission = Permission.create(:subject => assignment, :action => "read", :user => current_user)
- or -
assignment.permission.create(:user => current_user, :action => "read")