べるべる研究日誌

なんでもやる系エンジニアの日々

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

とか書けるようになったので、とりあえず楽になった気がする。