2008-08-28 [長年日記]

_ [rails] M#c vs M::C#index

MController#c と、M::CController#index があって、"/m/c" にアクセスすると M::CController#index が優先されると思ってたんだけど、そんな挙動をするのはなんか自分のマシンだけのような気がしてきた。

こんなのを作って、

$ rails _1.2.6_ m-c
$ cd m-c
$ ruby script/generate controller M c
$ ruby script/generate controller M::C index

こうなるのと、

$ ruby script/console 
Loading development environment.
>> app.get "/m/c"
=> 200
>> app.controller.controller_path
=> "m/c"
>> app.controller.action_name
=> "index"

こうなるのがある。

$ ruby script/console 
Loading development environment.
>> app.get "/m/c"
=> 200
>> app.controller.controller_path
=> "m"
>> app.controller.action_name    
=> "c"

1.2.6 でも 2.1.0 でも一緒。

後者は、app/controllers/m_controller.rb の c メソッドと app/views/m/c.rhtml を消しても、

>> app.get "/m/c"
=> 404

になるだけで、M::C#index にはアクセスできない。

何が違うのかなぁ。

[]

«前の日記(2008-06-30) 最新