私はレールの初心者で、複数のタグを使用してページのコンテンツをフィルタリングしたいと考えています。act_as_taggable_on gem を使用していますが、タグクラウドを使用して、タグに従ってコンテンツをフィルタリングすることができました。次のチュートリアル ( http://railscasts.com/episodes/382-tagging ) を使用しました。複数の tag_types を使用してフィルタリングすることができなくなりました。
model/ article.rb に次のコードを追加しました
act_as_taggable
act_as_taggable_on :assetType, :productType
コントローラーでは、複数のタグを書くことを知りません。私は次の方法を試しました
def index
if (params[:assetType] and params[:productType])
@articles = Article.tagged_with(params[:assetType]).tagged_with(params[:productType])
else
@articles = Article.all
end
end
index.html.erb の私の見解では、
<div id="tag_cloud">
<% tag_cloud Article.productType_counts, %w[s m l] do |tag, css_class| %>
<%= link_to tag.name, tag_path(tag.name), class: css_class %>
<% end %>
</div>
<div id="tag_cloud_asset">
<% tag_cloud Article.assetType_counts, %w[s m l] do |tag, css_class| %>
<%= link_to tag.name, tag_path(tag.name), class: css_class %>
<% end %>
</div>
<div class="article-content">
<% @articles.each do |article| %>
<h3><%= article.title %></h3>
<p><%= article.content %></p>
<% end %>
そして私の _form には
<%= form_for(@article) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :content %><br />
<%= f.text_area :content %>
</div>
<div class="field">
<%= f.label :assetType_list, "Tags (Asset Type separated by commas)" %><br />
<%= f.text_field :assetType_list %>
<%= f.label :productType_list, "Tags (Product Type separated by commas)" %><br />
<%= f.text_field :productType_list %>
</div>
<div class="actions">
<%= f.submit %>
</div>
コントローラー、インデックス、および _form ページをどのように変更すればよいですか? 今ではすべての投稿が表示されており、タグをクリックしてもコンテンツは変更されません