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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

6742閲覧

【Rails】No route matches [GET]エラーの解決法

Jonathan_Sf

総合スコア13

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2020/07/15 19:55

前提・実現したいこと

Rails初心者です。
wikipediasimpleAPI (http://wikipedia.simpleapi.net/)を用いて、
フォームに入力した文字列が含まれるWikipediaの項目を全て表示するプログラムを作っています。

発生している問題・エラーメッセージ

No route matches [GET] "/toppage_index_path"
上記エラーを解決できず、どなたかお力添えいただけないでしょうか、、、?
初心者あるあるエラーのようなのですが、自力で解決に至ることができていません、、、。

該当のソースコード

routes.rb

Rails.application.routes.draw do root 'toppages#index' resources :toppage end

views.toppages.index.html.erb

<div class="container"> <%= form_with url: 'toppage_index_path', method: :get, local: true do |f| %> <%= f.text_field :word_code, class: "index_form", placeholder:"言葉" %> <% end %> <p>結果:<%= @title %></p> </div>

controllers.toppages_controller.rb

class ToppagesController < ApplicationController def index unless params[:word_code].nil? require 'net/http' require 'json' require 'uri' word=params[:word_code] uri = URI.encode "http://wikipedia.simpleapi.net/api?keyword=#{word}&output=json" uri = URI.parse(uri) req = Net::HTTP::Get.new(uri) res = Net::HTTP.start(uri.host, uri.port){|http| http.request(req) } results = JSON.parse(res.body) @title=[] results.each do |res| title= res["title"].to_s @title.push(title) end puts @title end end end

rubyのバージョンは2.5.3です。よろしくお願い致します、、、。

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

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

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

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

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

guest

回答2

0

ベストアンサー

rails routes
として、 routes の設定を確認してみてください。
現状だと
toppage_index GET /toppage(.:format)
みたいなものが出力結果に含まれるとおもいます。 (/toppage であり、 末尾に s がついてない)

routs.rb の記述を resources :toppage -> resources :toppages に変更してから
rails routes とすると
toppages GET /toppages(.:format)
みたいな出力に変わるはずです。 (/toppages であり、 末尾に s が付く

https://railsguides.jp/routing.html Rails のルーティング
のページ中で "複数形" を検索して、複数と単数の違いを調べてみてください。

投稿2020/07/15 23:20

katoy

総合スコア22324

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

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

Jonathan_Sf

2020/07/16 04:54

ご回答ありがとうございます。 解決できました。 見落としだったのですが、おかげで学習も深まり、とても助かりました。ありがとうございます。
guest

0

url: 'toppage_index_path'と書くと、ヘルパーとして処理されず、書いたとおりtoppage_index_pathへアクセスするものとして処理されてしまいます。

url: toppage_index_pathと、ヘルパーを呼び出す形で書いてください。

投稿2020/07/15 22:23

maisumakun

総合スコア146018

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

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

Jonathan_Sf

2020/07/16 04:37

お返事ありがとうございます。 すみません、、、。見落としておりました。 以後気をつけます。助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問