0

私はそのような3列の単純なテーブルを持っています

table
  thead
    th Element
    th Owner
    th Progress
  tbody
    == render :partial => "element_row" :collection => @elements :as => table_element

各要素は一意であり、1 人の所有者が複数の要素を持つ場合があります。"started"「進行状況」には、"not started"、 、 など、いくつかの異なるタイプがあり"completed"ます。

テーブルをフィルタリングするリンクをいくつか作成したいと考えています。たとえば、ユーザーがリンクをクリックすると、テーブルがフィルタリングされて、表示されている行のみが表示される開始"started"リンクを作成したいとします。フィルターの別の例は、所有者によるものです。

これを行う方法について何か提案はありますか?

4

2 に答える 2

2

あなたがあなたを助ける宝石を探しているなら、RansackはActiveRecordデータを検索する(そしてひいてはフィルタリングする)ための素晴らしい、人気のある、そしてアクティブなプロジェクトです。

Ernieのデモサイトをチェックすると、検索パラメータがGETクエリを介してURLをどのように変更するかを確認できます。これらのGETフォームリクエストをモックするために、希望する開始リンクのようなリンクを簡単に作成できます。

于 2012-11-01T21:46:06.427 に答える
0

サーバー側でこれを実行する場合は、リンクパラメーターを使用して@elementsをフィルター処理するフィルターメソッドをコントローラーに追加します。

ActiveRecordを使用してデータベースから@elementsを選択すると、次のことができます。

@elements = Element.where(progress: params[:progress])

メモリ内の@elementsをフィルタリングしたいだけの場合は、次のようにすることができます。

@elements = @elements.select{ |element| element.progress == params[:progress] }
于 2012-11-01T21:45:36.227 に答える