Ez_Where
ActiveRecordのconditionをうまく書く方法が無いかといろいろ試行錯誤。検索条件や項目等が選択になっているとconditionsをうまく書けない。かといってズラズラ書くのも美しくないので悩む。
のヘルパーがうまく動かない。flatten_conditionsがいつ呼ばれるのかいまいちわからない...と思いつつ時間切れ。@conditionsをandで展開するだけだから、自力で書いてもいいかなと。でも、こんどちゃんと調べるぞっと。
ということで、比較的定番そうな「ez_where」を使う事で解決。
script/plugin install http://opensvn.csie.org/ezra/rails/plugins/dev/ez_where/
ez_where_twoってのもあったけど、これはいつのまにかマージされている模様。
ということで、
@d = Address.ez_find(:all,:order=>"status DESC",:page=>{:size=>20,:current=>params[:page]}) do |d| d.status > 0 d.address =~ "%#{address}%" d.name =~ "%#{name}%" end
とか書けるようになったので、とりあえず楽になった気がする。