ActiveModel :: ForbiddenAttributesError使用旧版本的Ruby? [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ActiveModel :: ForbiddenAttributesError使用旧版本的Ruby? [重复]相关的知识,希望对你有一定的参考价值。

这个问题已经在这里有了答案:

我正在使用Rails创建一个博客。 我正在遵循在Rails上使用旧版本的教程。 我试图在同一页面上发布有关博客文章的评论。 每当我点击提交按钮时,我都会收到此错误消息。 ::加载ActiveModel ForbiddenAttributesError

提取的来源(第44行附近):

def create
@post = Post.find(params[:post_id])
@comment= @post.comments.new(params[:comment])

respond_to do |format|
  if @comment.save

这是我控制器内的代码

def create
  @post = Post.find(params[:post_id])
  @comment= @post.comments.build(params[:comment])

  respond_to do |format|
    if @comment.save
      format.html { redirect_to @post, notice: 'Comment was successfully created.' }
      format.json { render json: @post, status: :created, location: @comment }
    else
      format.html { render action: "new" }
      format.json { render json: @post.errors, status: :unprocessable_entity }
    end
  end

谢谢您的帮助

答案

我猜您正在使用Rails4。如果是这样,则必须在控制器中将所需的参数标记为必需。

您可以参考http://stackoverflow.com/questions/17868427/rails-4-activemodelforbiddenattributeserror

以上是关于ActiveModel :: ForbiddenAttributesError使用旧版本的Ruby? [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 ActiveModel::Serializer 中序列化错误哈希

是否可以在 Rails 控制器之外使用 ActiveModel::Serializers?

rails create方法ActiveModel::ForbiddenAttribute的问题

ActiveModel :: ForbiddenAttributesError使用旧版本的Ruby? [重复]

Rails ActiveModel 序列化程序呈现非空属性

尝试运行 rspec 时,我得到“未初始化的常量 ActiveModel”