カテゴリと記事の間に習慣的な関係がある場合は、カテゴリ インデックス ページから、カテゴリが入力された 2 つの選択ボックスを使用してフィルターを実行できます。これにより、いずれかまたは両方のカテゴリに属する記事が表示されます。
これが私が試した方法です。
カテゴリーコントローラー
def index
@categories = Category.all
end
def show
@category = Category.find(params[:name][:id])
end
カテゴリ インデックス ページ
<%= form_for :categories, :url => {:action => :show}, :method => "get" do |f| %>
<div class="field">
<%= f.label :category %><br />
<%= collection_select(:name, :id, Category.all, :id, :name) %>
</div>
<div class="field">
<%= f.label :category %><br />
<%= collection_select(:name, :id, Category.all, :id, :name) %>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
カテゴリ表示ページ
<ul>
<% @category.articles.each do |a| %>
<li><%= a.author %></li>
<li><%= a.title%></li>
<li><%= a.pub_date%></li>
<% end %>
</ul>
この段階では、2 番目の collection_select に基づいて記事のみを表示します。
また、habtm はこのようなことをするために完全に必要ですか? 記事モデルに代わりに列がある場合、これを行うことができますか? 最良の方法はどれですか?
ありがとう