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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

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

ルーティング

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

1回答

2009閲覧

(Railsアプリ)ネストしたコメントの編集ができずに困っています。

jirou6699

総合スコア4

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

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

ルーティング

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

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2020/09/13 03:32

現在railsをつかってアプリの制作をしています。ネスト状態にあるコメントの編集画面に遷移しよう(edit)とする時にエラーが出てしまいます。なかなか前に進まず困っていまして、アドバイス等いただけますと嬉しいです。よろしくお願いします。

掲載されている案件(job)に対して口コミのような機能を持たせる為、状況としては下記の通りです。
・記事(jobsコントローラ)と設定
・口コミ(reviewsコントローラー)と設定
・ルーティングでjobsとreviewsをネストしている
・投稿された口コミの削除は問題なくできている

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

3行目にエラーでています。おそらくeditに遷移する時にview_pathが引っ張れていないのだと思うのですが発生源を特定できずにいます。

undefined method `review_path' for #<#<Class:0x00007fcda33b19d8>:0x00007fcd86895980> Did you mean? view_paths Extracted source (around line #5): 3 .Review-wrapper__title 4 感想を教えて! 5 = form_with model: @review, html: {class: "Review-wrapper__form"}, local: true do |form| 6 .Review-box 7 .Review-box__good 8 【よかった点】 Rails.root: /Users/○○○○/self-website/web-haken Application Trace | Framework Trace | Full Trace app/views/reviews/edit.html.haml:5 Request Parameters: {"_method"=>"get", "authenticity_token"=>"yVlyBiAnosFAGlAx1r4ID1LuC4gdvHkju5ObZlZ+YwxgywZIMElVIg/+8lSypa58qqBE1FO4pIYPSOJ2gaYDnw==", "job_id"=>"5", "id"=>"29"}

該当のソースコード

(reviews/edit.html.haml)

rails

1.Wrapper 2 .Review-wrapper__title 3 感想を教えて! 4 = form_with model: @review, html: {class: "Review-wrapper__form"}, local: true do |form| 5 .Review-box 6 .Review-box__good 7 【よかった点】 8 = form.text_area :good, maxlength: 250, class: 'Review-box__text', placeholder: 'ここに文章を入力してください' 9 .Review-box__bad 10 【わるかった点】 11 = form.text_area :bad, maxlength: 250, class: 'Review-box__text', placeholder: 'ここに文章を入力してください' 12 .Review-button 13 = form.submit 'レビュー'

該当のルーティング

(routes.rb)

rails

1resources :jobs, only: [:index, :new, :create, :destroy, :edit, :update] do 2 resources :reviews, only: [:create, :destroy, :edit, :update] 3 end

###該当のコントローラー
(ReviewsController)

rails

1class ReviewsController < ApplicationController 2 def create 3 review = Review.create(review_params) 4 redirect_to "/matches/#{review.job_id}.reviews" 5 end 6 7 def destroy 8 review = Review.find_by(id: params[:id], job_id: params[:job_id]) 9 if review.present? 10 review.destroy 11 redirect_to "/matches/#{review.job_id}.reviews" 12 end 13 end 14 15 def edit 16 @review = Review.find_by(id: params[:id], job_id: params[:job_id]) 17 end 18 19 def update 20 review = Review.find_by(id: params[:id], job_id: params[:job_id]) 21 review.update(review_params) 22 end 23 24 25 private 26 def review_params 27 params.require(:review).permit(:good, :bad).merge(user_id: current_user.id, job_id: params[:job_id]) 28 end 29end 30

該当のprefix

(ターミナル)

rails

1          job_reviews POST /jobs/:job_id/reviews(.:format) reviews#create 2 edit_job_review GET /jobs/:job_id/reviews/:id/edit(.:format) reviews#edit 3 job_review PATCH /jobs/:job_id/reviews/:id(.:format) reviews#update 4 PUT /jobs/:job_id/reviews/:id(.:format) reviews#update 5 DELETE /jobs/:job_id/reviews/:id(.:format) reviews#destroy 6

該当のSQL

イメージ説明

試したこと

エラー画面で出ているundefined method `review_path'がどのあたりなのかが予測できずにいます。。。
試したこと①
edi→updateだけなのでシンプルに下記のようにも試してみましたが、同じエラー内容表示となってしまいます。

rails

1 def edit 2 @review = Review.find(params[:id]) 3 end

試したこと②
form_with部分のみコメントアウトするとedit画面に遷移はします。

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

ruby '2.6.5' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '~> 6.0.0' # Use mysql as the database for Active Record gem 'mysql2', '>= 0.4.4' # Use Puma as the app server gem 'puma', '~> 3.11' # Use SCSS for stylesheets gem 'sass-rails', '~> 5' # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker gem 'webpacker', '~> 4.0' # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks gem 'turbolinks', '~> 5' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 2.7'

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

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

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

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

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

guest

回答1

0

エラー画面で出ているundefined method `review_path'がどのあたりなのかが予測できずにいます。。。

= form_with model: @review, html: {class: "Review-wrapper__form"}, local: true do |form| 内部で作成されているんだと思います。

こちらのサイトが役に立つかもしれません。

Nested Resources w/ Rails 5.1 form_with

投稿2020/09/20 08:39

s4na_penguin

総合スコア176

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問