Railsで検索を作る時ちょっと面倒臭いです。

EZ_Where, Where Plugin, CriteriaQueryなど、検索条件を書きやすくするプラグインがいくつかありますが、railswhereというプラグインは記述が簡潔で気に入りました。

timcharper’s railswhere at master ? GitHub

Where clause generator Building a complicated where clause made easy

インストール:

script/plugin install git://github.com/timcharper/railswhere.git

施設(Facility)の検索フォームで、

「都道府県」、「フリーワード」

で検索という場合、

where = Where.new

unless params[:prefecture_id].blank?
  where.and('prefecture_id = ?', params[:prefecture_id])
end

unless params[:word].blank?
  where.and(
    Where.new("name LIKE  ?", "%#{params[:word]}%").
        or("description LIKE ?",  "%#{params[:word]}%")
  )
end

@facilities = Facility.paginate(
  :page => params[:page],
  :conditions => where.to_s)

という感じです。(ちょw%%かよ!はスルーで)

パッと見だけで使い方がわかるのがうれしい。

※間違ってたので修正しました。簡単に条件を入れ子にできるのもいいですね。

Comments


Option