在控制器的create方法中,为User表添加属性。

14 浏览
0 Comments

在控制器的create方法中,为User表添加属性。

我希望我的登录用户能够创建一个新的\"论坛\"。当他们在表单中填写信息并点击提交时,将会将\'admin\'添加到他们的用户表中。\ndef create\n@forum = Forum.new(forum)\nrespond_to do |format|\n if @forum.save\n format.html { redirect_to @forum, notice: \'论坛创建成功。\' }\n format.json { render action: \'show\', status: :created, location: @forum }\n format.json { current_user.update_attribute :admin, true }\n else\n format.html { render action: \'new\' }\n format.json { render json: @forum.errors, status: :unprocessable_entity }\n end\nend\nend\n我以为这会起作用,但是当我尝试时我得到了ActiveModel::ForbiddenAttributesError

0
0 Comments

问题的原因是由于在控制器的create方法中的User表中没有添加属性。解决方法是在params.require(:forum).permit(:name)中添加需要的属性。

解决方法:

在控制器的create方法中的User表中添加需要的属性。

def forum
  params.require(:forum).permit(:name, :attribute1, :attribute2)
end

将output of Forum.new和puts params的输出添加到问题中或者添加到某个git中。

0