У меня проблема с параметрами params. Я следую руководству по rails, чтобы реализовать комментарии в моем приложении, но когда я пытаюсь опубликовать комментарий, я получаю сообщение об ошибке:
ActionController::ParameterMissing at /posts param is missing or the value is empty: post
Это код в контроллере, который выдаст ошибку
def post_params
params.require(:post).permit(:title, :text).tap do |post_params|
post_params.require(:title, :text)
end
end
вот метод create, связанный с методом post_params
def create
@post = Post.new(post_params)
if @post.save
redirect_to @post
else
render 'new'
end
end
и это представление, где я вызываю form_with
<h1>My post</h1>
<p><%= @post.title%></p>
<p><%= @post.text%></p>
<h2>Add a comment</h2>
<%= form_with(model: [@post, @post.comments.build], url: post_path, local: true) do |form|%>
<p>
<%= form.label :body%><br>
<%= form.text_field :commenter%>
</p>
<p>
<%= form.label :body%>
<%= form.text_area :body%>
</p>
<p>
<%= form.submit%>
</p>
<% end%>
<p><%= link_to "edit", edit_post_path %></p>
Контролер комментариев:
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create(comment_params)
redirect_to post_path(@post)
end
private
def comment_params
params.require(:comment).permit(:commenter, :body)
end
end
Routes.rb
Rails.application.routes.draw do
resources :posts
resources :comments
root 'home#index'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end