如何解决强参数: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
解决方法
我像这样修复了强参数ActiveModel :: ForbiddenAttributesError:
params.require(:post).permit(:title,:body,comment_attributes: [:body])
,
根据您的评论,您必须执行以下操作:
post = Post.find(params[:id])
post.comments.create(comment_params)
并允许它像
private
def comment_params
params.require(:comment).permit(:title,:body)
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。