I created blog with ability create comments using rails 5.1.2 and simle_form 4.0.0. App has two forms - first for creating blog post, second for creating comments. Comments form nested in post show page. Validation for both forms work properly, but problem that comment form not display error messages. How to achieve that?
Post model: app/models/post.rb
class Post < ApplicationRecord
has_many :comments, dependent: :destroy
end
Comment model: app/models/comment.rb
class Comment < ApplicationRecord
belongs_to :post
validates :comment_content, presence: true, length: { maximum: 5000 }
end
Comments controller: app/controllers/comments_controller.rb
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(params[:comment].permit(:comment_content))
redirect_to post_path(@post)
end
end
Comment form: app/views/comments/_form.html.erb
<%= simple_form_for([@post, @post.comments.build]) do |f| %>
<%= f.input :comment_content, input_html: { class: 'texture' }, wrapper: false, label_html: { class: 'label'
} %>
<%= f.button :submit, 'Leave a reply', class: "btn btn-primary" %>
<% end %>
Comment partial: app/views/comments/_comment.html.erb
<%= comment.comment_content %>
Post show page, where comment form rendered: app/views/posts/show.html.erb
<p id="notice"><%= notice %></p>
<p>
<!-- Post details -->
</p>
<%= render @post.comments %>
<%= render 'comments/form' %>
Routes:
Rails.application.routes.draw do
resources :posts do
resources :comments
end
end