記事があり、各記事にはタグがあります。現在、すべてのタグをまとめて呼び出しています。
<% @articles.each do |article| %>
<div class="articlebox">
<article>
<h4>
<%= link_to article.title, article_path(article) %>
</h4>
<%= markdown article.body %>
<span class="articletagbox">
<%= article.tag_tokens %>
</span>
<% end %>
現在、私のクラスはすべての記事タグを回っています。各記事タグを個別に回ってほしい。
シンプルにやってみた
<% @tags.each do |tag| %>
しかし、それは私に未定義のメソッド "each" nilclass エラーを与えます。
これが非常に単純であることはわかっていますが、機能させるために何を変更すればよいかわかりません。記事モデルで何かを定義する必要があると思いますか?
ありがとう!
編集
だから今私のコードは次のようになります:
<% article.tags.each do |tag| %>
<span class="articletagbox">
<%= article.tag_tokens %>
</span>
<% end %>
article.rb のメソッドは次のとおりです。
def tag_tokens
self.tags.collect{|t| t.name}.join(", ")
end
これは、各記事に関連付けられたすべてのタグを、タグの数と同じ回数だけ返します。
たとえば、記事に 3 つのタグ (tag1、tag2、tag3) がある場合、次のようになります。
<class>tag1 tag2 tag3</class> <class>tag1 tag2 tag3</class> <class>tag1 tag2 tag3</class>
代わりに私が欲しい
<class>tag1</class> <class>tag2</class> <class>tag3</class>
そのため、各記事に関連付けられたすべてのタグが一緒に返される理由がわかりませんが、タグの数と同じ回数です。それが理にかなっていることを願っています。