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

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

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

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

Q&A

1回答

306閲覧

Ruby on RailsでのNoMethodErrorを解決したい

yukitaka

総合スコア0

Ruby on Rails

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

0グッド

0クリップ

投稿2021/03/26 11:26

解決・実現したいこと

初心者です。
ご指導ご鞭撻願います。
現在Ruby on Railsにて釣った魚の情報を投稿できるアプリを作成しています。
new.html.erbにform_withを記述していた時に下記のエラーが発生しました。

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

NoMethodError in Informations#new undefined method `information_index_path' for #<#<Class:0x00007faaa23fbbd8>:0x00007faaa23f81e0> Did you mean? informations_path <div class="items-sell-main"> <h2 class="items-sell-title">釣果を入力</h2> <%= form_with model: @information, local: true do |f| %>

該当のソースコード

information_controller.rb

1class InformationsController < ApplicationController 2 before_action :authenticate_user!, except: [:index] 3 4 def index 5 @informations = Information.all.order("created_at DESC") 6 end 7 8 def new 9 @information = Information.new 10 end 11 12 private 13 14 def information_params 15 params.require(:information).permit(:image, :title, :text, :date_id, :fish, :size, :weight, :number, :prefecture_id, :area).merge(user_id: current_user.id) 16 end 17end

routes.rb

1Rails.application.routes.draw do 2 devise_for :users 3 root to: 'informations#index' 4 resources :informations, only: [:index, :new] 5 6end
<div class="items-sell-contents"> <div class="items-sell-main"> <h2 class="items-sell-title">釣果を入力</h2> <%= form_with model: @information, local: true do |f| %> <%# インスタンスを渡して、エラー発生時にメッセージが表示されるようにしましょう。%> <%# render 'shared/error_messages', model: f.object %> <%# //インスタンスを渡して、エラー発生時にメッセージが表示されるようにしましょう。%> <div class="img-upload"> <div class="weight-bold-text"> 画像 <span class="indispensable">必須</span> </div> <div class="click-upload"> <p> クリックしてファイルをアップロード </p> <%= f.file_field :image, id:"item-image" %> </div> </div> <div class="new-items"> <div class="weight-bold-text"> 釣果情報 <span class="indispensable">必須</span> </div> <%= f.text_area :title, class:"items-text", id:"item-name", placeholder:"釣果情報(必須 40文字まで) 例(タイが釣れました。)", maxlength:"40" %> <div class="items-explain"> <div class="weight-bold-text"> 釣果情報の説明 <span class="any">任意</span> </div> <%= f.text_area :text, class:"items-text", id:"item-info", placeholder:"釣果情報の説明(任意 1,000文字まで) 例(休日に堤防で釣りをしていたところタイが釣れました。)" ,rows:"7" ,maxlength:"1000" %> </div> </div> <div class="items-detail"> <div class="fish-information">釣果データ</div> <div class="form"> <div class="weight-bold-text"> 釣れた日 <span class="indispensable">必須</span> </div> <div class='input-date_id'> <%= f.datetime_field :date_id, class:"items-data_id", id:"item-name" %> </div> <div class="weight-bold-text"> 魚種 <span class="indispensable">必須</span> </div> <%= f.text_field :fish, class:"items-fish", id:"item-name", placeholder:"(必須 20文字まで)", maxlength:"20" %> <div class="weight-bold-text"> サイズ <span class="any">任意</span> </div> <%= f.number_field :size, class:"items-size", id:"item-name" %><span class="size-cm"> cm</span> <div class="weight-bold-text"> 重さ <span class="any">任意</span> </div> <%= f.number_field :weight, class:"items-weight", id:"item-name" %><span class="weight-Kg"> Kg</span> <div class="weight-bold-text"> 匹数 <span class="any">任意</span> </div> <%= f.number_field :number, class:"items-number", id:"item-name", maxlength:"3" %><span class="number-fish"> 匹</span> <div class="weight-bold-text"> 都道府県 <span class="indispensable">必須</span> </div> <%= f.collection_select(:prefecture_id, Prefecture.all, :id, :name, {}, {class:"select-box", id:"item-prefecture"}) %> <div class="weight-bold-text"> エリア <span class="any">任意</span> </div> <%= f.text_field :area, class:"items-area", id:"item-name", placeholder:"(必須 20文字まで)", maxlength:"20" %> </div> </div> <div class="sell-btn-contents"> <%= f.submit "投稿する" ,class:"sell-btn" %> <%=link_to 'もどる', root_path, class:"back-btn" %> </div> </div> <% end %> </div>

試したこと

newアクションに誤字があるのかと考え確認したところミスはなさそうでした。
form_withの記述方法にミスがあるのでしょうか?
回答よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ruby

1<%= form_with model: @information, url: informations_path, method: :post,local: true do |f| %>

これで動作しませんか?もしエラー出たらまた教えてほしいです

また、上記で動作するしないに関わらず、念の為
質問に記載いただいたコードがあるるファイル名をパスも含めて教えていただきたいです
例:app/controller/informations_controller.rb

投稿2021/03/27 04:14

yoshi_10_11

総合スコア241

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

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

yukitaka

2021/03/27 04:27

回答ありがとうございます。 エラーは自分で解決できました。内容はモデルのバリデーションが抜けており、追加するとエラーが消えました。 対応ありがとうございます。
yoshi_10_11

2021/03/27 04:37

なるほど、かしこまりました!無事に解決できてよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問