2008/05/08

RubyOnRailsで検索機能をつけてみる

RubyOnRailsのscaffoldジェネレータを使って作ったアプリケーション(というほどたいそうなものではないが)に検索機能を付けてほしいという要望があったため、ちょいちょいっと作成。


さすがRubyOnRails。とりあえずMySQLを中心としてデータが保存してあるので、その時点で
where hogehoge like "%" + @keyword +"%"

みたいな感じで検索できるのは何となく想像できるのですが、ここまで簡単だとは思いませんでした。

10行位追加するだけでできました。

具体的にはcontrollerに下記のような検索用のメソッドを作っておいて、viewに検索窓からクエリを投げるだけです。検索結果の表示にもscaffoldで自動的に作成されたlistをそのまま使えばOK。


def search
@mogo_pages,
@mogos = paginate :mogos,
:per_page => 5,
:conditions => ["'カラム名' like ?",'%' + params[:mogo][:fuga] + '%' ]
@mogo = params[:mogo][:hoge]
render :action => 'list'
end



blogでうまくインデントできない・・・。
なんとなくRoRは自由度が低くて使いにくいような気もしたけど、よくある基本的な機能を作るだけなら十分な気がします。

0 件のコメント: