Ruby on Railsで前方一致検索をしようと思う。LIKE用のメソッドは用意されていないように見えたので(プラグインがあるという記述を見かけたので、きっとないのだろうという判断)、conditionsをベタっぽく書くことにする。
が、普通にlike 'hoge%'と書くと、こんなエラーが出る。
malformed format string - %
どうやら%は置換用の文字になっているので使ってはいけないらしい。サニタイズのこととかもあるので、「?」使うのがとりあえず正解のように見えた。
Hoge.find(:all, :conditions => ["fuga like ?", "moge%"]
Railsのことはまだまだよく分からない。何度も「もうfind_by_sqlでいいか」と思いつつ、それでは学習しないのでやり方を調べる日々。