検索フォームを作るにあたってransackを使ったら非常に便利でしたというお話

いやー最近まんぼうよく死んでますね。

f:id:kamip:20140619001547j:plain

ということで、お仕事で検索機能を作りたくて twitter につぶやいたら @patorash さんに ransack という gem を教えてもらって素直に使ってみました。

使い方は以下でわかるのでわからなくなったら見るといいです。説明とか出来ないので見るといいですうん。

Rails - Ransackのススメ - Qiita
Basic Searching · activerecord-hackery/ransack Wiki · GitHub

ちょっとタグをカスタマイズしたいときは radio_button_tag だったら以下のように ransack が動作する key(以下の場合は params['q']['hoge_eq']) で post すればちゃんと動きます。controller でごにょごにょするのはめんどくさいのでこんな感じがいいかなーと。

radio_button_tag_c params, :hoge_eq, '1', true
def radio_button_tag_c(params, name, value, default_checked=false)
  check_flag = params.key?('q') && params['q'].key?(name) && params['q'][name] == value ? true : false
  check_flag = true if default_checked && params.key?('q') == false
  radio_button_tag "q[#{name}]", value, check_flag
end

そもそも radio_button_tag どうやって書くねんって調べまくったメモでした。

ソースが長いのでもっと短くならないですかねー (((((((((((っ・ω・)っ ブーン

いやーそれにしても便利だなー。ほんと捗る。オレオレ糞コードかくところでした。ぱとさんありがとうございました!