다형성 철도 협회 (거꾸로 가는가?)
-
22-07-2019 - |
문제
'케이스'모델을위한 레일 앱에 다형성 레일 연관성이 많습니다. 사례가 많이있는 것이 많으므로 'the _that_has_a_case.case'를 수행하여 각각의 경우에 액세스합니다.
그러나 나는 다른 방향으로 가려고 노력하고 있으며 어떻게 확실하지 않습니다. 케이스 객체에 액세스 할 수 있지만 케이스가있는 것에 액세스하고 싶습니다. 레일은 이것을 할 수있는 방법이 있습니까? 각 유형의 객체에 대해 다른 SQL을 찾는 못생긴 스위치로 수행 할 수 있지만 레일이 더 나은 방법을 갖기를 바랐습니다. 감사!
해결책
케이스 모델에 이와 같은 것을 추가 할 수 있습니다.
belongs_to :parent, :polymorphic => true
.. 필드가 있다고 가정합니다 parent_id
그리고 parent_type
귀하의 경우 모델에서 (첫 번째 인수를 belongs_to
이 협회 필드를 지명 한 방법에 따라 다릅니다). 이것을 갖는 후에는 단지 언급 할 수 있어야합니다. case.parent
주어진 경우 인스턴스.
그리고 명확히하기 위해이 관계의 한쪽에는 다음과 같은 것이 있습니다.
has_many :cases, :as => :parent, :dependent => :destroy
(나는 당신이 당신의 설명에 따라 이미 그 일을하고 있다고 가정합니다)
제휴하지 않습니다 StackOverflow