Rails 3.1 が出たので、昨今作っているアプリをマイグレーションしてみました。

まず、3.1 のコードベースで bundle して、rspec走らせると、jQuery-UI 使ってる部分のコードが動作しないせいで、integration test (Capybara-Webkit使ってる)が通らないところが数カ所出ました。

原因は、jQuery関係の .jsなファイルを publicから見付けてくれなかったから。バックワードコンパチビリティ的に多少問題ある部分がありそうな予感だけど、追求は面倒くさそう。ちなみに、development環境で実行しても、何も出ないので、何が起こってるかさっぱり分かりません(笑)。

そんなわけで、正当に、Asset Pipeline 使うように変更したら動くようになりました。Rails 3.0 向けに書かれたコードで Asset Pipeline使うためには、下記三点の修正が必要のようです。

  1. config/ の下を直す

Ruby on Rails Guide: Asset Pipeline の一番最後にこそっと書いてある修正が必要です。

  1. 適宜 public の下のイメージ、JavaScript、 スタイルシートを app/assets の下などに移します。

  2. 場合によると、上記アセットを参照しているパスの修正が必要(私の場合は image/ほげ と書いてあった部分で、一部、image/ を削らないとダメなのがあった)

これで、なんでもかんでも public にあるという状態から解放されるので、少しコードのコンポーネント化をすすめられそうです。


blog comments powered by Disqus