ルーティングについて

Railsアプリケーションのルーティングはconfig/routes.rbにて行われる。具体的な記述方法が分からなかったので調べた。

(1)下記は、http://example.com/hoge にアクセス(GETリクエストを送信)すると、hogeコントローラーのindexアクションが実行される。

get 'hoge' => 'hoge#index'

(2)下記は、http://example.com/hoge/recieve にPOST送信をすると、hogeコントローラーのrecieveアクションが実行される。

post 'hoge/recieve' => 'hoge#revieve'

下記のようにも記述できた。

post 'hoge/recieve'

  • 行頭のget、postは送信メソッドを表している。なので、(2)だけが記述されている場合は、hoge/recieveにGETリクエストを送ったとしても、ルーティングが設定されていません!というエラーが出てしまう。
  • 'hoge#recieve' に記述されているシャープ記号はコントローラー名とアクション名を区切るための記号である。なので、この文字列を見れば、「hogeコントローラーのrecieveアクション」のことを指していると理解することができる。