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

Ubuntu Server 12.04で動画のサムネイルを作成~avconv ffmpeg

  目次1 インストール2 動画の情報3 使えるフォーマットの一覧4 サムネイル画像の作成 インストール

総合的な動画の変換 …

Rails3.2+Mongoidでログイン機能~devise

  目次1 Gemfile2 generate3 model4 試す5 Login/Logout6 アクセス制限7 メニュー構成を整える8 翻訳 I18n9 見た目を整える Gemfile …

RailsにTwitter Bootstrapを設定する~twitter-bootstrap-rails

環境 ruby 1.9.3  & rails 3.2.8 適当なscaffoldを作っておく

  github.co …

MIddlemanでrails-assets.orgをつかってbowerのコンポーネントをつかう

By: Simon Cunningham – CC BY 2.0 middlemanは静的なサイトのジェネレータ rails-assets.orgは「the frictionless pr …

no image

Private_pub(Faye)の管理にForemanを使う~Foreman & Upstart

foremanはFayeサーバーのようにRailsのサーバーとは別プロセスで動くサーバー類をまとめて管理するgemだ 参考 railscasts.com/episodes/281-foreman?la