メリー・クリスマス。
The Ruby Toolbox Search
自分自身結構使うので、少し改善してみました。
主な修正内容
・URLの固定化
・bug fix
URLの固定化
毎日データをinsertしていたのでurlが変わっていました。
まぁ、作るときに分かってたんですが。。
実装
以前日記に書きましたが
railsでは、to_paramをoverrideするとすんなり実現できます。
def to_param "#{id}-#{name.gsub(/\W/, '-').downcase}" end
少し嵌ったところ
関連モデルのリンク先を固定化する場合、
idを渡すのではなくオブジェクトを渡さないとto_paramが有効になりませんでした。
(そら、そうやな)
#これNG
<%=link_to h(project.category_name), category_path(project.category_id) %>
#これOK
<%=link_to h(project.category_name), category_path(project.category) %>
実は
見た目的には、これぐらいしか変わってないんですが
以下のようなことを実施しています。
・内部のテーブル構造を変更
・それに伴うクローラの修正
・mysqlのデータ移行
・関係ないけど、バッチをscript/runnerへ移行
何がうれしいかというと
今までは、毎日約780件のprojectデータを放りこんでいたのですが
そうすると半年で13万件近くなり、全文検索(thinking sphinx)対象が
日増しに増えるということになっていたので
これを解消するついでにto_paramを実装したという感じです。
余談ですが
cronでscript/runnerをキックすると実行されないという罠に
2時間くらい嵌ってしまいました。
原因は、script/runnerのshebungが
#!/usr/bin/env ruby
となっているからで
cron実行時に/usr/bin/envへのpathが通ってないという
ありがちなとこで嵌ってしまいました。
なんだかんだで一日掛かりでしたが、今度は見た目や機能についても弄っていこうと思います。