rails には、 railCastのページと同じことを行うプラグインがあります。タグをフィルターのように使用します。
たとえば、ページの上部にある Type Free Episodes (右側) をクリックすると、
適用されたフィルター: 無料エピソード
他のカテゴリでも同じように入力し、「x」をクリックしてこのフィルターを削除します...
何か案が!!!!
rails には、 railCastのページと同じことを行うプラグインがあります。タグをフィルターのように使用します。
たとえば、ページの上部にある Type Free Episodes (右側) をクリックすると、
適用されたフィルター: 無料エピソード
他のカテゴリでも同じように入力し、「x」をクリックしてこのフィルターを削除します...
何か案が!!!!
Railscasts サイトには、エピソード タイプの 1 つをクリックすると、タイプ パラメータ セットがあります。タイプ パラメータを処理するインデックス アクションが必要です。設定されている場合は、タイプ固有のもののみをクエリし、そうでない場合はすべてのエピソードをクエリします。それはとても簡単です。たとえば、次のようになります。
class EpisodesController < ApplicationController
def index
if params[:type]
@episodes = Episode.where(:specifc_type => params[:type])
# or
@episodes = Episode.to_klass(params[:type]).all # if you are using STI and have a to_klass method in your model, which generates the class constant out of the params, e.g => params[:type] => "pro", Episode.to_klass("pro") => ProEpisode, or something similar
else
@episodes = Episode.all
end
end
end
そして、あなたのビューでは、フィルターを単純にレンダリングします
アプリ/ビュー/エピソード/index.html.erb
<% if params[:type] %>
<div class="filters">
<strong>Applied Filters:</strong>
<span class="filter">
<%= your_helper_display_name(params[:type]) %>
<%= link_to "x", root_path %> # removes the type params => the else case in your index action will be called.
</span>
</div>
<% end %>