2

을 일을 파괴 I가 다음과 같은 열이있는 작업 피드라는 활동 생성하는 데 사용 모델 :활동 피드 A : 의존 => :

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 

내가 열거로 기본 연결 개체의 키 (예를 들어, 즐겨 찾기) 및 activity_typesource_id를 사용하려고 해요 (즐겨 찾기 => 1, 초대장 => 2 등)을 사용하여 simple_enum 보석.

질문 : :dependent => :destroy을 즐겨 찾기 모델에서 사용할 수 없습니다. 그것은 내가 즐겨 찾기를 삭제하고 나면 그것을 깨끗하게 제거하기위한 favorite_id 외래 키가 없다는 것을 예외로 생각 나게합니다. 어떻게 처리 할 수 ​​있습니까?

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

답변

2

나는 그런 식으로 레일이 자동으로 다형성 물건을 처리 할 수 ​​있으며, 수동 필요가 열거와 값의 제어하지 것이라고 activity_type 필드가 SOURCE_TYPE라고되어 있어야합니다 생각합니다.

+0

네, 맞습니다. 나는 이것을 위해 Rails Guides를 살펴 보았어 야했다. 감사! – adarsh

관련 문제