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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

347閲覧

Ruby no Railsでビューファイルへのアクセス方法(URL)がわかりません

honda_toru

総合スコア30

Ruby

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

Ruby on Rails

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

0グッド

1クリップ

投稿2018/12/24 17:00

Ruby on Railsでビューファイルへアクセスしたいのですが
URLがわかりません。

config/routes.rb
Rails.application.routes.draw do
get 'blogs' => 'blogs#index'
get 'blogs' => 'blogs#eg'
end

app/controllers/blogs_controller.rb
class BlogsController < ApplicationController
def index
end

def eg end

end
というファイルを作成した場合に
app/views/index.html.erbとeg.html.erbにアクセスしたいのですが
URLがわかりません。

rails sでテストサーバーを起動して
http://localhost:3000/blogsと検索するとindexファイルは表示されるのですが
http://localhost:3000/blogs/index.html.erbや
http://localhost:3000/blogs/eg.html.erbと検索しても

Routing Error
No route matches [GET] "/blogs/index.html.erb"
Rails.root: /Users/name/projects/blogman

Application Trace | Framework Trace | Full Trace
Routes
Routes match in priority from top to bottom

Helper HTTP Verb Path Controller#Action
Path / Url
Path Match
blogs_path GET /blogs(.:format) blogs#index
GET /blogs(.:format) blogs#eg
というエラーメッセージが表示されます。
正しいビューファイルの表示のさせ方を教えてください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

まず大前提として、RailsでURLを叩いて実行されるのはコントローラーのアクションで、(ビューファイルを動的に選ぶコントローラーがあれば話は別ですが)ビューファイルを直接表示することはできません

そして、get 'blogs'に重複してルートが割り当てられていますが、この場合先に書いたほうが優先されますので、あとに書いたblogs#egのルートを呼び出す方法はありません。

ということで、blogs#egを活かすには、別にルートを立てる必要があります。

投稿2018/12/25 00:08

maisumakun

総合スコア145183

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

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

honda_toru

2018/12/25 05:00

回答ありがとうございます。 別にルートを立てるにはどうすれば良いでしょうか? 初心者なのでわからないことが多く申し訳ございません。
maisumakun

2018/12/25 05:02

「get 'hogehoge' => 'blogs#eg'」のように、「blogs」以外の指定をしてください。
honda_toru

2018/12/25 05:14

解決できました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問