私には投稿があり、人々がそれにコメントできるようにしています。問題は、誰かが空白のコメントを投稿しようとすると、次のエラー メッセージが表示されることです。
NameError in Comments#create
Showing app/views/shared/_comment_form.html.erb where line #1 raised:
undefined local variable or method `post' for #<#<Class:0x6344a18>:0x635ad20>
抽出されたソース (行 #1 付近):
1: <%= form_for([post, @comment]) do |f| %>
2: <%= render 'shared/error_messages', object: f.object %>
3: <div class="field">
4: <%= f.text_field :comment_content %>
これが私がコメントモデルに持っているものです
class Comment < ActiveRecord::Base
attr_accessible :comment_content
belongs_to :user
belongs_to :post
validates :comment_content, presence: true
validates :user_id, presence: true
validates :post_id, presence: true
:comment_content を検証すると、空の送信からエラー メッセージが表示されるのを防ぐことができると思いましたが、上記のエラー メッセージが表示されます。
これは私のコメントコントローラです
class CommentsController < ApplicationController
def new
@post = Post.new(params[:post])
end
def show
@comment = Comment.find(params[:id])
respond_to do |format|
format.js
end
end
def create
@post = Post.find(params[:post_id])
@comment = Comment.new(params[:comment])
@comment.post = @post
@comment.user = current_user
if @comment.save
redirect_to(:back)
else
render 'shared/_comment_form'
end
end
end