ネームスペースと同名コントローラ問題。

namespace内のmap.rootが効いたり、効かなかったり – p0t

yoshukiさんに教えてもらったんですが、map.rootのせいというより、namespaceを使ったものと同名のcontrollerがあるとproductionで時々違うviewが実行されてしまうようです。(Admin::StoneShopControllerとStoneShopControllerとか)

komagataさんが書かれているように、同名のコントローラでネームスペースに入れているものと入れていないものが存在する場合に、ときどき間違った(ネームスペースを無視した)ビューが使われてしまう問題に遭遇していました。

controller namespace causes wrong views to be rendered? – Ruby on Rails: Talk | Google グループ

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.

自分もソースを追ってみたのですがまったくといっていいほど歯が立たず、あっさり挫折して件のGregさんにどのような対応をされたのか聞いてみました。

結果、すべてのコントローラをネームスペースに入れてしまい、それ以来この問題は起きていないとのこと。
ちなみにこちらでは片方のコントローラ名を変更することで回避していました。
Gregさんは1.2、こちらは2.0.2、最新の2.1でどうなっているのかは確認できていませんが、どちらも根本的な解決にはなっていないことになります。

Lighthouseでチケットを探してみたのですが、この件に関するものは上がっていないようでした。

ということで報告しようと思ったのですが、さて、どう証拠を示したらよいやら・・・。

タイトルとURLをコピーしました