つづき:Railsのコントローラを調べる

ルーティングなどについて理解を深めるため、
コントローラのデフォルトの挙動を調べる。
hogeメソッドを含むTestコントローラをつくってみた。

$ ruby script/generate controller test hoge
      exists  app/controllers/
      exists  app/helpers/
      create  app/views/test
      exists  test/functional/
      create  app/controllers/test_controller.rb
      create  test/functional/test_controller_test.rb
      create  app/helpers/test_helper.rb
      create  app/views/test/hoge.html.erb

config/routes.rbには変化なし。

最低限の記入をしてみて、/test/hogeにアクセスしてみた。

Routing Error

No route matches "/test/hoge" with {:method=>:get}

つまりデフォルトではルーティングがきかないのか?
config/routes.rbに以下を追加してみる。

map.connect '/test/hoge', :controller =>'test', :action=>'hoge'

動いた。
No route mathesエラーだとroutes.rbの記載で修正できると。

いまつまづいてるのは、No method errorである。
ビューとひもづけられたはずのコントローラ内部のメソッドを
呼んでいない。

わかった。

class Hoge
    def foo
        ...
    
    
    def bar
        ...
    end
end

endが抜けとる。
ちゃんとインデントしないとこういうことになるのか。。。