2011-01-06 5 views
0

割り当て:タイトル:文字列 許可:USER_ID:整数、subject_class:文字列、subject_id:整数、アクション:文字列余分にhas_many要件

割り当てにhas_many:権限は、:FOREIGN_KEY =>: をsubject_idしかし、私はどのように作るのですかsubject_class == self.class.to_s要件について知っていることを確認してください。 [:subject_class => 'Assignment'}を使用して、いつpermissions.newを行うことができますか:subject_classも設定されています。

答えて

0

これは、あなたの割り当てモデルでは(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") 
関連する問題