長文で失礼します。
現在、Ruby on Railsチュートリアル3章を読み進めてます。
リンク内容
この中のRailsのルーティングに関する解説がよくわかりません。
チュートリアルの大筋の流れとしては、静的なページを生成するために
$ rails generate controller StaticPages home help
でStaticPagesコントローラを生成すると、config/routes.rbが
Rails.application.routes.draw do get 'static_pages/home' get 'static_pages/help' root 'application#hello' end
という風に自動的に更新されるのですが、この中の
get 'static_pages/home'
のルールが、/static_pages/homeというURLに対するGETリクエストを
StaticPagesコントローラのhomeアクションと結びつけている、という解説がよくわかりません。
私はconfig/routes.rbはルーティング(あるURLに対するリクエストに対応して特定のコントローラのアクションを返す)のための情報が記載されているファイル、と認識していました。
そのため、config/routes.rb内にはURL,コントローラ、アクションの3つは基本的に書かなければならないと思ってました。
(例えばroot 'application#hello'は/にアクセスした際にapplication_controller.rbのhelloアクションにルーティング、と理解してました)
一方で、今回の
get 'static_pages/home'
はURLとHTTPメソッドしか記載されておらず、どのコントローラのどのアクションにルーティングするのか、という情報が記載されておりません。
なぜこの記法でStaticPagesコントローラのhomeアクションにルーティングされるのでしょうか。
$ rake routes
と入力すると
Prefix Verb URI Pattern Controller#Action static_pages_home GET /static_pages/home(.:format) static_pages#home
と表示されるためルーティングが成立しているのだと思いますが、理由がいまいちわかりません。
ご教授よろしくお願いいたします。
補足情報
基本的にRailsチュートリアル通りの環境で、AWS & Cloud9、Railsのバージョンは5.1.4です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/04 23:14