Railsで使えるGem

Rails4で複雑な検索〜Ransack

投稿日:

株価データをつかって複雑な絞り込み検索ができるようにしてみた

データは、こちらのサンプルを使わせていただいた

datawarehouse.web.fc2.com/

参考

railscasts.com/episodes/370-ransack?language=ja&view=asciicast

Ransackのススメ

スキーマ1

まず、そのままテーブルにしてみる

 db/seeds.rb

 Gemfile

Rails4でいくならこっち

github.com/activerecord-hackery/ransack

 Controller

params[:q]に複雑なクエリーをいれてくれる、これをsearchメソッドにいれればOK

結果はresultに出てくる

kaminariとかはresultの方にメソッドをつける

 View

サーチフォームを簡単に作れるsearch_form_forというヘルパーが使える

ここで、name_contはcontainつまり含むかどうかを判定してくれる

screenshot

sort_linkというヘルパーをテーブルのヘッダに使うと

ソートをつけてくれる

screenshot screenshot

スキーマ2

関連するモデルをつかってみる

db/seeds.rb

find_or_create_byをうまくつかって 正規化しながら挿入してみる

View

関連するモデルをセレクトボックスの選択肢に加えてみる

stackoverflow.com/questions/13959005/rails-ransack-drop-down-list-collection

複雑な条件での絞り込み検索が可能に

screenshot

 

関連先のデータベースも一気に読み込むのはresultの方にincludesすればよい

 

-Railsで使えるGem
-

執筆者:

関連記事

no image

TwitterBootstrapRailsでエラーが出る件

    undefined method `less’・・・的なエラーが出た. とりあえず下のgemを足したら動いた.そのうち修正されるとおもう. [crayon-58 …

no image

Rails3.2でテーブルの並び替えをリファクタリング~ヘルパー

環境 Rails3.2.8でテーブル並び替えのテストを作る~cucumberと正規表現 テストができたのでHelper化 目次1 現状2 helper3 index.html.erb 現状 共通部分が …

Rails5でコントローラーの記述を省略~inherited_resources

By: Simon Matzinger – CC BY 2.0 目次1 inherited_resources2 Gemfile3 使い方 inherited_resources inhe …

no image

Ruby on Rails 3.2でファイルアップロード〜CarrierWave & RMagick

    CarrierWaveはRubyでファイルのアップロードを簡便にするGemです。 RMagickはImageMagickという画像ファイルを加工するソフトのラッパーです。C …

Rails3.2とBackbone.jsでサーバーサイドのページネーション

By: Haldane Martin – CC BY 2.0   前提 Rails3.2とBackbone.jsでサーバーサイドのフィルタリング Rails3.2とBackbon …