私は「プロジェクト」の基本モデルを持っていますが、現在、属性はname:string、active:booleanのみです。インデックスビューで、アクティブプロジェクト、非アクティブプロジェクト、およびすべてのプロジェクトの3つのリンクを作成できるようにしたいと思います。これらのリンクは、:activeboolean値のステータスに基づいて適切なプロジェクトを表示します。最初に、次のようなリンクパラメータを指定してビューを設定しました。
link_to "Active Projects", {:action => 'index', :active => true}
次に、コントローラーで:
if params[:active] == "true"
@projects = Project.find(:all, :conditions => {:active => true})
elsif params[:active] == "false"
@projects = Project.find(:all, :conditions => {:active => false})
else
@projects = Project.all
これは少し面倒なようです。特に、将来的には期日やクライアントなどの複数のフィルターが必要になるためです。コントローラーを大量のコードでいっぱいにすることなく、高度な並べ替え/フィルタリングアクションを実装するための良い方法/宝石は何ですか?