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

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

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

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

Ruby on Rails

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

Q&A

解決済

1回答

583閲覧

Rails にてコメント機能を実装させたいです。

uruman

総合スコア12

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2021/12/14 09:47

前提・実現したいこと

railsにてコメント機能を実装させたいです。

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

NoMethodError in Maps#show undefined method `map_map_comments_path' for #<#<Class:0x00007ff69425df90>:0x00007ff6943e6e98> Did you mean? map_map_commetns_path map_map_commetn_path map_map_commetns_url map_map_commetn_url

該当のソースコード

html

1・・省略・・ 2 <%= form_with model:[@map,@map_comment] do |f| %> 3 <%= f.text_area :comment, class: "form-control",width: 200, placeholder: "コメントをここに" %> 4 <%= f.submit '送信', class: "btn btn-sm btn-info mt-3"%> 5 <%end%>

mapcommetncontroller

1class MapCommentsController < ApplicationController 2 3 def create 4 map= Map.find(params[:tweet_id]) 5 map_comment = current_user.tweet_comments.new(map_comment_params) 6 map_comment.tweet_id = map.id 7 map_comment.save 8 redirect_to request.referer 9 end 10 11 def destroy 12 MapComment.find_by(id: params[:id]).destroy 13 redirect_to request.referer 14 end 15 16 private 17 18 def map_comment_params 19 params.require(:map_comment).permit(:comment) 20 end 21end
class MapsController < ApplicationController def index @maps = Map.all end def show @map = Map.find(params[:id]) @map_comment = MapComment.new end end

model

1class Map < ApplicationRecord 2 geocoded_by :address 3 after_validation :geocode, if: :address_changed? 4 has_many :map_comments,dependent: :destroy 5end 6 7class MapComment < ApplicationRecord 8 belongs_to :user 9 belongs_to :map 10end 11 12class User < ApplicationRecord 13has_many :map_comments, dependent: :destroy 14end 15

routes

1Rails.application.routes.draw do 2 devise_for :users 3 root to: 'homes#top' 4 resources :maps, only: [:index,:show] do 5 resources :map_commetns, only: [:create,:destroy] 6 end 7end

試したこと

ルーテイング等もあっていると思うのですが、解決できませんでした。
どなたかよろしくお願いします。

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

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

resources :map_commetns, only: [:create,:destroy]

spellミス気がします、map_commentsにしてみたらどうですか。

resources :map_comments, only: [:create,:destroy]

エラーはroutesがないと言われたので、/rails/info/routesでroutesの一覧確認できます。

投稿2021/12/15 02:47

heroyct

総合スコア434

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

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

uruman

2021/12/15 02:51

ご返信有難う御座います。routesを確認したところ map_map_commetns POST /maps/:map_id/map_commetns(.:format) map_commetns#create map_map_commetn DELETE /maps/:map_id/map_commetns/:id(.:format) 存在していました。
heroyct

2021/12/15 02:56

map_map_comments_path これはないでしょう?etnはるけど、entがないと言われていますよ。
uruman

2021/12/15 07:14

すいません簡単なスペルみすでした。解決することができました。 有難うございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問