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

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

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

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1089閲覧

Railsチュートリアル 5.3 レイアウトのリンク

buwaresute

総合スコア12

Ruby on Rails 5

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

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/02/22 02:35

Railsヘルパーに渡す名前付きルートの名前

Railsチュートリアル 5.3 レイアウトのリンクで
名前付きルートをRailsヘルパーに渡す作業がありますが
チュートリアルでは下記のようにabout_pathとしてURLを渡しています。
しかし、私のソースではstatic_pages_about_pathとしなければ
about_pathが見つからないとしてエラーになります。

私がこの問題に関係していると思うのはconfig/routes.rbだと思うのですが
チュートリアルのソースと差異はないように思えます。

rails routesのprefixに_pathを付けたものが名前付きルートになるのだと思いますが
無駄に長い名前付きルートになってしまっている理由がわからないので
(prefixが長い理由がわからないとも言える?)
教えて頂きたいです。

Railsチュートリアル

<%= link_to "About", about_path %>

私のソースコード

<%= link_to "About", static_pages_about_path %>

rails routes

Prefix Verb URI Pattern Controller#Action root GET / static_pages#home static_pages_home GET /static_pages/home(.:format) static_pages#home static_pages_help GET /static_pages/help(.:format) static_pages#help static_pages_about GET /static_pages/about(.:format) static_pages#about static_pages_contact GET /static_pages/contact(.:format) static_pages#contact

config/routes.rb

ruby

1Rails.application.routes.draw do 2 root 'static_pages#home' 3 get 'static_pages/home' 4 get 'static_pages/help' 5 get 'static_pages/about' 6 get 'static_pages/contact' 7 8 9end

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

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

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

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

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

guest

回答1

0

ベストアンサー

チュートリアルのソースと差異はないように思えます。

Rails Tutolialの該当箇所を確認してみたところ、

リスト 5.21などで使われたデフォルトのルーティングはやや回りくどいので、HelpページやAboutページ、Contactページなどの名前付きルートを定義していきましょう。

と、下の方でget '/about', to: 'static_pages#about'のような形で定義しています。ルーティングが全く別物です

投稿2019/02/22 02:43

maisumakun

総合スコア145183

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

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

buwaresute

2019/02/22 02:49

回答ありがとうございます。 ということは 誰もがこの部分で同じ問題にあたるということしょうか チュートリアルの不備というか、、 下のほうでルーティング定義を直した後の名前付きルートを 直す前の段階で問題なく使えるかのように記述してあるということですよね。
maisumakun

2019/02/22 02:54

5.3の冒頭は「このようにできる」という紹介だけで、実際に組み込むのは5.3.2でルートを設定してから5.3.3で行うようになっています。
buwaresute

2019/02/22 04:03

なるほどよくよく読み返してみるとその通りですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問