【发布时间】:2014-02-11 20:54:32
【问题描述】:
使用 form_for([@post, @comment]) 向我的 cmets 控制器发送发布请求时出现错误。创建评论。
ActiveModel::ForbiddenAttributesError in CommentsController#create
导致错误的行:
@comment = @post.comments.build(params[:comment])
我知道这归结为一个强大的参数问题,但我似乎无法正确处理。目前我的帖子模型是:
posts.rb
class Post < ActiveRecord::Base
has_many :comments, dependent: :destroy
end
对于 cmets:
comment.rb
class Comment < ActiveRecord::Base
belongs_to :post
end
我目前对 cmets 控制器的强参数设置是:
cmets_controller.rb
private
def comment_params
params.require(:post).permit(comment: [:name, :body])
end
最后,错误消息报告的参数是:
{"utf8"=>"✓",
"authenticity_token"=>"MSX1PrrvfzYBr/DNYaMgSw3opWmaJs82xd11JfLPIqI=",
"comment"=>{"name"=>"",
"body"=>""},
"commit"=>"Create Comment",
"post_id"=>"1"}
如果我的强大参数设置被破坏,任何人都有任何想法 - 任何想法都将不胜感激。谢谢!
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4