【发布时间】:2020-10-25 02:43:29
【问题描述】:
假设我有一个 PostsController,我有一个 Post 模型和 Comment 模型。我允许在帖子上制作 cmets,所以在我的帖子/节目中我放了以下内容
# routes.rb
resource :post do
member do
post :add_comment
end
end
# post.rb
has_many :comments
# comment.rb
belongs_to :post
<%= form_with(model: @post, url: add_comments_post_path) do |form| %>
<%= form.text_area :body %>
<% end %>
# posts_controller
def add_comment
post = Post.find(params[:id])
post.comments.create(params[:comment])
end
private
params.require(:post).permit(:title, :body)
我尝试在许可上添加:comment,但它引发了ActiveModel::ForbiddenAttributesError
【问题讨论】:
-
检查服务器日志,你会看到请求的参数,你必须复制它。需要/允许什么取决于实际的表单输入,因为您没有显示输入,所以很难说。如果您不确定,请提交其中一种表单并在此处复制该请求的日志。
-
是参数 {comment => {:body => "message}, id => 1}
-
@Berimbolo 你能发布错误日志吗?
-
ActiveModel::ForbiddenAttributesError
标签: ruby-on-rails ruby-on-rails-5 strong-parameters