2

を仕事に破壊し、私は次の列を持っている活動と呼ばれるアクティビティフィードを生成するために使用されるモデルがあります:私はしようとしているアクティビティフィードを取得することはできません:=>依存:

t.integer "user_id" 
t.datetime "created_at" 
t.datetime "updated_at" 
t.integer "source_id",  :null => false 
t.integer "activity_type", :null => false 
t.text  "data",   :null => false 

をフィードに表示する価値のあるさまざまな種類のオブジェクトに各アクティビティを添付します(たとえば、お気に入り、新しい接続などに追加する)。以下の関連は今存在します

belongs_to :user 
belongs_to :source, :polymorphic => true 

私が使用して列挙型(例えばお気に入り=> 1、招待状=> 2)として接続オブジェクト(例えばお気に入り)の主キーとしてsource_idactivity_typeを使用しようとしていますsimple_enumの宝石。

質問::dependent => :destroyをお気に入りモデルで使用することができません。それは、Favoriteを削除したら、それをきれいに削除するための外部キーがないことを私に思い出させます。これをどうすれば処理できますか?

ActiveRecord::StatementInvalid (PGError: ERROR: column activities.favorite_id does not exist' 

答えて

2

私はACTIVITY_TYPEフィールドはRailsが自動的に多型のものを扱うことができる方法、SOURCE_TYPEと呼ばれているはずと信じて、そしてあなたはそれが列挙型と値のコントロールを手動必要はありません。

+0

はい、これは正しいです。私はこれについてRailsガイドを見ていたはずです - それはそこではとても簡単です。ありがとう! – adarsh

関連する問題