我實現反向多態性的一個例子的Rails從這個問題的選擇答案: Reverse Polymorphic Associations反向多態性協會在鐵軌(訪問父的屬性)
有了這個,我們能夠做到以下幾點:
t = Article.new
t.article_elements # []
p = Picture.new
t.article_elements.create(:element => p)
t.article_elements # [<ArticleElement id: 1, article_id: 1, element_id: 1, element_type: "Picture", created_at: "2011-09-26 18:26:45", updated_at: "2011-09-26 18:26:45">]
t.pictures # [#<Picture id: 1, created_at: "2011-09-26 18:26:45", updated_at: "2011-09-26 18:26:45">]
我想知道是否可以修改這個,如果我做 t.article_elements
,我也可以看到圖片的屬性。例如,如果我有一個變量p的picture_name屬性,我如何從t.article_elements訪問它?所以基本上,我試圖從子對象訪問父項的屬性。
感謝您的回答。我想這可能工作。我也認爲你可以做t.article_elements.map {| x | x.element}#這遍歷每個article_element並返回其關聯的父模型及其所有屬性 –
特定名稱問題的另一個解決方案是使用類似下面的內容:article_element.element.send(「#{element_type} _name」 )。但是。只有當名稱隨着類型名稱而變化時。 –