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

RubyでDocxを分解してみた~Nokogiri::XML::SAX

    参照 Rubyでdocxをいろいろ分析してみた 今度はsaxのアプローチでdocxのword/document.xmlを分解してみた 使い方は、Nokogiri::XML: …

Rails5でtextareaをコードエディタにする〜Ace Editor

By: Mike Mozart – CC BY 2.0 目次1 Ace Editor2 Gemfile3 application.js4 View5 coffeescript6 できた A …

Rails4.0でもajaxなデータテーブルを使う~ajax-datatables

Railsでajaxなテーブルを使う~datatables Rails4でのJSONテンプレート~jbuilder+rabl+ruby 目次1 index.json.jbuilder2 tasks.j …

連続的な位置情報の取得とHerokuへのアップ~HTML5 Geolocation API

  目次1 連続的な位置情報の取得2 heroku3 結果 連続的な位置情報の取得 連続的な位置情報の取得はこんなかんじで書いてみた [crayon-5ce2796f4323a1462614 …

Rails3.2でコードのお作法を指摘してもらう~Rails Best Practices

コードのお作法を自動でチェックしてくれるrails_best_practiceを導入した

あとは、Railsのルートで[crayon- …