2013-07-16 2 views
0

다형성 연관에 데이터가 저장되는 방식을 설명 할 수 있습니까?다형 연관 데이터 저장소

예를 들어 댓글, 사례, 사례 단계 표가있는 경우 링크 형태의 레일을 통해

belongs_to :case, class_name: 'Case', foreign_key: 'case_id' 
    has_many :comments, as: :commentable, dependent: :destroy 

Goen 캐스트 및 기타 여러 링크 :

has_many :comments, as: :commentable, dependent: :destroy 

케이스는 테이블처럼 단계 :

belongs_to :user, class_name: 'User', foreign_key: 'user_id' 
    belongs_to :commentable, polymorphic: true, counter_cache: true 

케이스 테이블이 링크입니다 : 댓글 테이블 링크입니다. .. 그러나 명확한 이해를 얻지 못합니다.

답변

0

코멘트

코멘트 테이블에서
id | case_step_name | case_id 
------------------------------- 
1 | abc   | 1 

, commentable_type 열이 클래스 이름을 저장합니다 같은

id | case_name 
-------------- 
1 | abc 

case_steps 테이블이 될 것 같은 테이블이 될 것입니다

id | user_id | commentable_type | commentable_id | value 
-------------------------------------------------- 
1 | 1  | Case    | 1    | fdsfdsfsdf 
2 | 1  | CaseStep   | 1    | dasdfs 

가지 경우처럼 될 것입니다 그것은 다형성 연관이며 commentable_id는 클래스의 레코드 ID입니다 (ta ble). 위의 경우 '사례'또는 '사례 단계'일 수 있습니다.