2016-01-04 87 views
0

我不完全知道如何解釋這一點,而不是一個例子。 我有一個關聯到自己的單詞模型。一個詞可以具有變體(即該詞的不同版本,例如MouseMice)。Self Assosiation數組包含附加元素

class Word < ActiveRecord::Base 
    has_many :variations, class_name: "Word", foreign_key: "variant_id" 
    belongs_to :variant, class_name: "Word" 
end 

調用@word.variations列出了基本詞的所有變體。例如在Mouse上調用它會給我們一個包含Mice的數組。 @word.variant,當鼠標調用時會給鼠標。這工作得很好但是, 在我看來,我不僅得到了預期的變化,但還額外的元素/words

我用下面的代碼打印:

<% @word.variations.each do |v| %> 
    <%= link_to v.name, v %>, 
<% end %> 

印刷Mouse的變化會產生Mice, /word哪裏Mice正確鏈接到該單詞的顯示頁面並/word鏈接到localhost:3000/word

任何想法可能會導致此?

+0

我沒有看到你的代碼有問題......我會試着更仔細地看看錶單。如果它不是太大,你可以在你的問題中包含所有內容嗎? – SteveTurczyn

回答

0

我想通了! 在我看來,我不得不打電話給@word.variations.each,我不得不打電話給@word.variations.all.each。我在我的控制器中創建了一個新變量: @variations = @word.variations.all 然後在我看來,我對該變量調用.each

<% @variations.each do |v| %> 
    <%= link_to v.name, v %>, 
<% end %> 

這樣更好一點。由於某種原因,@word.variations包含那個有趣的額外元素。

如果有人知道爲什麼會發生這種情況,請告訴我。除此之外,問題得到解答。