自关联数组包含附加元素
Self Assosiation array contains additional element
除了举个例子,我不知道该如何解释。
我有一个关联到自身的 Words 模型。一个词可以有变体(即该词的不同版本,例如 Mouse
和 Mice
)。
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
,当调用 Mice 时会给 Mouse。但是,这很好用,
在我看来,我不仅得到了预期的变化,而且还得到了一个额外的元素 /words
我正在使用以下代码进行打印:
<% @word.variations.each do |v| %>
<%= link_to v.name, v %>,
<% end %>
打印 Mouse
的变体会产生 Mice, /word
,其中 Mice
正确链接到该词的显示页面,/word
链接到 localhost:3000/word
知道是什么原因造成的吗?
我想通了!
在我看来,我不得不调用 @word.variations.all.each
而不是调用 @word.variations.each
。我在控制器中创建了一个新变量:
@variations = @word.variations.all
然后在我看来,我对该变量调用 .each
。
<% @variations.each do |v| %>
<%= link_to v.name, v %>,
<% end %>
这样比较好。出于某种原因 @word.variations
包含那个有趣的额外元素。
如果有人知道为什么会这样,请告诉我。除此之外,问题已得到解答。
除了举个例子,我不知道该如何解释。
我有一个关联到自身的 Words 模型。一个词可以有变体(即该词的不同版本,例如 Mouse
和 Mice
)。
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
,当调用 Mice 时会给 Mouse。但是,这很好用,
在我看来,我不仅得到了预期的变化,而且还得到了一个额外的元素 /words
我正在使用以下代码进行打印:
<% @word.variations.each do |v| %>
<%= link_to v.name, v %>,
<% end %>
打印 Mouse
的变体会产生 Mice, /word
,其中 Mice
正确链接到该词的显示页面,/word
链接到 localhost:3000/word
知道是什么原因造成的吗?
我想通了!
在我看来,我不得不调用 @word.variations.all.each
而不是调用 @word.variations.each
。我在控制器中创建了一个新变量:
@variations = @word.variations.all
然后在我看来,我对该变量调用 .each
。
<% @variations.each do |v| %>
<%= link_to v.name, v %>,
<% end %>
这样比较好。出于某种原因 @word.variations
包含那个有趣的额外元素。
如果有人知道为什么会这样,请告诉我。除此之外,问题已得到解答。