Pergunta

Eu tenho um muitos para um associação trilhos polimórficas na minha rails app para um modelo 'case'. Há muitas coisas que têm casos, assim que eu acessar o caso, cada coisa tem fazendo 'thing_that_has_a_case.case'.

No entanto, eu estou tentando ir por outro caminho e eu não sei como. Eu tenho acesso ao objeto caso, mas eu quero acessar a coisa que está sendo encaixotado. Será que os trilhos têm uma maneira de fazer isso? Eu poderia fazê-lo com um interruptor feio que faz um achado sql diferente para cada tipo de objeto, mas eu estava esperando trilhos teria uma maneira melhor. Obrigado!

Foi útil?

Solução

Você pode adicionar algo como isto ao seu modelo de caso:

belongs_to :parent, :polymorphic => true

.. que assume que tem campos parent_id e parent_type no seu modelo de caso (alterar o primeiro argumento para o belongs_to dependendo de como você nomeou estes campos de associação). Uma vez que você tem isso, você deve apenas ser capaz de se referir a case.parent de uma determinada ocorrência de caso.

E, só para esclarecer, de um lado dessa relação tem algo como:

has_many :cases, :as => :parent, :dependent => :destroy

(eu estou supondo que você já tem que trabalhar com base na sua descrição)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top