ハマッタメモ。
% ruby -v
ruby 1.8.5 (2006-08-25) [i486-linux]
% rails -v
Rails 2.0.2
で、routesの
map.namespace :stone_shop do |stone_shop|
stone_shop.root :controller => "top"
end
が効いたり、効かなかったりする。(”“stone_shop = 石材店”“が何かはスルー)
map.stone_shop_root "/stone_shop", :controller => "stone_shop/top"
普通にこう書かないと駄目だった。何のタイミングかはさっぱりわからなかった。F5押すと直ったりする。ブラウザ依存じゃなかった。
上記の書き方の方が気持ち良いのに残念だな。
この問題、自分の中でpassengerとかmod_deflateとかに濡れ衣を着せて解決にだいぶ時間掛かってしまいました。
ちゃんと問題の切り分けをしていくのが最良の方法なのはわかってるはずが、リリース間近ってこうやって醜くテンパるものですよね・・・?(同意強要)
修正:
yoshukiさんに教えてもらったんですが、map.rootのせいというより、namespaceを使ったものと同名のcontrollerがあるとproductionで時々違うviewが実行されてしまうようです。(Admin::StoneShopControllerとStoneShopControllerとか)
Ruby on Rails: Talk | Google グループ controller namespace causes wrong views to be rendered?
I am having a strange problem on a couple sites I’ve built on Rails
1.2. The issue is that I have two controllers with the same name,
but in different namespaces. I have a controller called
””PressReleasesController”” on the front end, and another called
””Admin::PressReleasesController””.
To get to the front one, http://localhost:3000/press_releases. To
get to the admin on, http://localhost:3000/admin/press_releases.
Everything works fine, but after some time, I start seeing the front-
end views when I try to access the admin pages.
Routesのソースに挑みたいけどあれはキツイ・・・。この状態では怖くてnamespaceが使えません。みんなどうしてるんだろう・・・。2.1で直ってるといいな。