首页 > 解决方案 > 强参数:ActiveModel::ForbiddenAttributesError

问题描述

假设我有一个 PostsController,我有一个 Post 模型和 Comment 模型。我允许在帖子上发表评论,所以在我的帖子/节目中我放了以下内容

 # 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

标签: ruby-on-railsruby-on-rails-5strong-parameters

解决方案


我得到了像这样固定的强参数 ActiveModel::ForbiddenAttributesError:

params.require(:post).permit(:title, :body, comment_attributes: [:body])

推荐阅读