2016-04-18 1 views
1

私は 'フィード'モデルを持っています。これはhas_manyというエントリで、これらはすべて1ページに表示されます。 Searchkickはすべて設定されており、デフォルトの検索バーで魅力的に機能しますが、残念ながらボタンではできません。Searchkickボタンによるフィルタリング

私はSearchkickを使用して、ボタンのクリックで検索しようとしています(カラーのブランディをクリックし、カラーのブランディなどと一致するすべての結果を取得します)。私はそれが「集約」と呼ばれる文書を参照しています。この例は{color: "brandy"}でしょう。

コントローラー/モデル内のフィルターごとに個別のメソッドを作成する必要がありますか?その後、ボタンをクリックしてそれらを呼び出す?複数のものを扱うにはどうすればいいですか?

+0

あなたは、Ajaxリクエストで検索パラメータを送信しています?検索バーコードを共有して、どのように変更する必要があるかを確認できますか? –

+0

私は実際には、衣類のウェブサイトにあるフィルタに似た簡単なボタンを作成しようとしています。例えば[サイズM]をクリックして中程度の服にフィルターをかけます – Jonathan

答えて

1

いいえ、コントローラに新しい操作を追加することはありません。 Searchkickのdocからその集計例に拡大:ビューコントローラ

def filters 
    allowed_filters = %w(color size) 
    filters = params.select{|k, v| allowed_filters.include?(k) } 
end 
helper_method :filters 

= link_to 'color brandy', {action: 'index', filters.merge(color: 'brandy'}, class: 'ui-button' 
+0

回答ありがとうございますが、これをビューに追加するにはどうすればいいですか? – Jonathan

+0

見る?どうして?それらの少数の行がコントローラに入ります。 ああ、私はボタンを参照してください。その場合、 'filters'をコントローラのメソッドにしてください。私はここにコードを入れて、コメントはここに行かないでください:https://gist.github.com/TomK32/6ef879faec9e999cd41a8948b9f3cdaf –

+0

こんにちはトーマス、答えを編集して誰も助けることができます:)私はビューボタンを推測しますコピーして貼り付けて他のフィルタを作成することができます。 – Jonathan

関連する問題