質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2488閲覧

Railsのconfig/routes.rbの書き方について

troch

総合スコア349

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/07/04 22:49

長文で失礼します。
現在、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です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

'hoge/fuga'というURLにアクセスすることでデフォルトで'fohe#huga'のアクションが実行されます。もし、URLとアクションの組み合わせが一致しない場合、get 'hoge/huga' => 'foo#bar'のような書き方をします。

投稿2018/07/04 23:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

troch

2018/07/04 23:14

デフォルトか任意指定かの違いだったのですね。 理解できました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問