現在、投稿に対してのコメント機能を実装しています。
しかし、下記のエラーが出てしまいます。
記述ミスを探したのですが特に見つかりません。
どなたか分かる人はいますでしょうか。
route.rb resources :recruitments do resources :comments, only: :create resource :favorites, only: [:create, :destroy] end
モデル
comment.rb class Comment < ApplicationRecord belongs_to :recruitment belongs_to :user end
user.rb class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable, :rememberable, :validatable, :omniauthable has_many :recruitments has_many :favorites has_many :favorited_recruitments, :through => :favorites, :source => :recruitment has_many :comments end
recruitment class Recruitment < ApplicationRecord belongs_to :user has_many :favorites has_many :favorited_users, :through => :favorites, :source => :user has_many :comments end
コントローラー
CommentsController class CommentsController < ApplicationController def create Comment.create(comment_params) redirect_to "/recruitments/#{comment.recruitment.id}" # コメントと結びつく募集の詳細画面に遷移する end private def comment_params params.require(:comment).permit(:text).merge(user_id: current_user.id, recruitment_id: params[:recruitment_id]) end end
RecruitmentsController class RecruitmentsController < ApplicationController def show @recruitment = Recruitment.find(params[:id]) @user = @recruitment.user @favorite = Favorite.new @comments = @recruitment.comments.includes(:user) end end
ビュー
recruitments/show.html.haml .container - if current_user = form_with(model: [@recruitment, @comment], local: true) do |form| = form.text_area :text, placeholder: "コメントする", rows: "2" = form.submit "SEND" - else %strong %p ※※※ コメントの投稿には新規登録/ログインが必要です ※※※ .comments %h4 <コメント一覧> - if @comments - @comments.each do |comment| %p %strong = link_to comment.user.nickname, "/users/#{comment.user_id}" : = comment.text
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。