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

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

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

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Ruby on Rails

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

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

Q&A

1回答

1263閲覧

No route matches [GET] エラーが解決できません。

kohya_suzuki

総合スコア24

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Ruby on Rails

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

ルーティング

ルーティングとは、TCP/IPネットワークにおいて、目的のホストまでパケットを送る為のパス選定のプロセスを言います。

0グッド

0クリップ

投稿2021/07/20 02:27

question_top.html.erbへのリンクを踏んでページにアクセスしたいのですが、ルーティングがうまくいかずエラーになってしまいます。
どこの記述の辻褄が合わないのか、ご教授よろしくお願いします。

試したこと: routes.rbにget 'home/question_top' => 'questions#question_top'を記述。=>失敗。
推測: コントローラの生成段階で、何かのファイルがふそくしている..? Routes match in priority from top to bottomなので、ルーティングの記述する順番が何かの影響をしている..? GETでアクセスしようとしているのが変..?

エラー文 Routing Error No route matches [GET] "/home/question_top.html.erb" Rails.root: /Users/suzukikohya/myapp/sambo Application Trace | Framework Trace | Full Trace Routes Routes match in priority from top to bottom
routes.rb Rails.application.routes.draw do devise_for :users root 'home#index' get 'home/index' # get 'home/userpage' => 'questions#userpage' post '/home/userpage' => 'questions#create' get '/home/userpage'=> 'questions#create' resources :questions # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end
questions_controller.rb class QuestionsController < ApplicationController def new @question = Question.new(question_params) end def new @questions = Question.new end def create @questions = Question.new(questions_params) if @questions.save flash[:notice] = "問題を作成しました!" redirect_to("home/userpage") else flash[:alert] = "作成できませんでした" redirect_to("home/userpage") end end def questions_params params.require(:questions).permit(:content, :id, :level, :answer_list) end def userpage @questions = Question.new @questions = Question.all @question = Question.new @question = Question.all end def destroy end def question_top end end
index.html.erb <!DOCTYPE html> <html lang="ja" class="no-js"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ページのタイトル</title> <script type="module"> document.documentElement.classList.remove('no-js'); document.documentElement.classList.add('js'); </script> <link rel="stylesheet" href="/assets/css/styles.css"> <meta name="description" content="ページの説明文"> <link rel="icon" href="/favicon.ico"> <link rel="apple-touch-icon" href="/apple-touch-icon.png"> <link rel="manifest" href="/my.webmanifest"> </head> <!-- body --> <body> <!-- container --> <div class="container"> <div class="navbar"> <div class="navbar-header"> <div class="navbar-button"> <a class="navbar-title" href="/home/index"><h1>家事育児スキル認定アプリ</h1></a> </div> <form action="#" method="post"> <nav class="user-login"> <div class="user-icon" > <img src="img/#" alt="user-icon"> </div> <p>ユーザー名<br> <input type="text" name="user-name"></p> <p>パスワード<br> <input type="text" name="user-password"></p> <input type="checkbox" name="remember-me">Remember me <a href="/forgot-password.html">Forgot Password</a> <p><input type="button" value="Log in" id="login-button"></p> <p><input type="button" value="Sign Up" id="signup-button"></p> </nav> </form> </div> </div> <br> <br> <br> <link_to "ログアウト", destroy_user_session_path, method: delete %> <div class="level-select"> <div class="easy-question"><a href="/home/question_top.html.erb">初級</a> <p>初めての方はこちら</p> </div> <div class="normal-question"><a href="/home/normal-question.html">中級</a> <p>人生の必須知識を<br> 身に着けましょう </p> </div> <div class="hard-question"><a href="/home/hard-question.html">上級</a> <p>「パートナー」はおまかせあれ</p> </div> </div> </div> <!-- /container --> <!-- Footer --> <div id="footer"> </div> <!-- /Footer --> <!-- copyrights --> <div id="copyrights"> <div class="container"> <p> © Copyrights <strong>HogeHoge</strong>. All Rights Reserved</p> </div> </div> <!-- /copyrights --> </body> <!-- /body --> </html>
question_top.html.erb アクセスしたいリンク <!DOCTYPE html> <html lang="ja" class="no-js"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>ページのタイトル</title> require 'erb' <script type="module"> document.documentElement.classList.remove('no-js'); document.documentElement.classList.add('js'); </script> <link rel="stylesheet" href="/assets/css/styles.css"> <meta name="description" content="ページの説明文"> <link rel="icon" href="/favicon.ico"> <link rel="apple-touch-icon" href="/apple-touch-icon.png"> <link rel="manifest" href="/my.webmanifest"> </head> <!-- body --> <body> <!-- container --> <div class="container"> <div class="user-icon"> <!-- 問題を作った人のアイコンや情報を表示 --> <img src="img/#" alt="user-icon" id=> </div> <div class="question-contents"> <%= name %> </div> <div class="answer-list"> <div class="answer-select1" id=""><% answer-selectA %></div> <!-- 答えの選択肢に「問題を作った人のIDと、問題のIDと、解答のIDが紐付けられている --> <div class="answer-select2" id=""><% answer-selectB %></div> <div class="answer-select3" id=""><% answer-selectC %></div> </div> # # 部分テンプレの呼び出し # <%= render partial: 'layouts/_question_top.html.erb' %> # <!--例 テンプレート内の「hoge」という変数に「こんにちは」が代入される --> # <%= render partial: '_question_top.html.erb', locals: { question_contents: '' } <div class="create_questionform"> <%= form_for @users do |f| %> <p>ユーザー名</p> <input name="username" value="<%= @users.username %>"> <% end %> <%= form_for @questions do |f| %> <p>問題文</p> <input name="question_contents" value="<%= @questions.question_contents %>"> <input name="answer_list" value="<%= @questions.answer_list %>"> <input type="submit" value="問題の作成完了"> <% end %> </div> <%= form_for @users do |f| %> <p> <% f.text_field :name %> </p> <% end %> <%= form_for @question do |f| %> <p> <%= f.text_area :question_contents %> <%= f.text_area :answer_list %> </p> <% end %> <%= form_with model: @post do |form| %> <textarea name="contents"></textarea> <input type="submit" value="作成完了"> <% end %> <div class="flash-notifications"> <% flash.each do |key, message| %> <p><%= message %></p> <% end %> </div> </div> <!-- /container --> <!-- Footer --> <div id="footer"> </div> <!-- /Footer --> <!-- copyrights --> <div id="copyrights"> <div class="container"> <p> © Copyrights <strong>HogeHoge</strong>. All Rights Reserved</p> </div> </div> <!-- /copyrights --> <!-- JavaScript Libraries --> <!-- Template Main Jabascript File --> </body> <!-- /body --> </html>

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

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

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

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

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

guest

回答1

0

どこの記述の辻褄が合わないのか

question_top.html.erbのような拡張子が不要です。単にquestion_topでアクセスしてください。

投稿2021/07/20 02:29

maisumakun

総合スコア145121

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問