【Ruby】Ruby on Rails Part6
レス数が950を超えています。1000を超えると書き込みができなくなります。
0981nobodyさん
2009/04/28(火) 01:29:09ID:???Item.find_by_sql <<SQL
SELECT * FROM (
SELECT 1 AS sort_key, * FROM items WHERE name LIKE "aaa"
UNION SELECT 2 AS sort_key, * FROM items WHERE name LIKE "a%"
UNION SELECT 3 AS sort_key, * FROM items WHERE name LIKE "%a%") ORDER BY sort_key ASC
SQL
とか。(てきとう)
トータルの該当検索件数が大したことないなら、
それぞれの一致方式で個別にfindした結果を連結し、そいつに、
will_paginateが必要とするメソッドを特異メソッドとして実装するという手もある。
(total_pages, current_page, previous_page, next_pageメソッドを定義すればいい)
あと、likeの引数に任意の外部入力文字列を安全に埋め込むのは結構面倒だと思うのでがんばって。
レス数が950を超えています。1000を超えると書き込みができなくなります。