在我的注册表单中,我收到以下错误:
参数缺失或值为空:用户
控制器:
class UsersController < ApplicationController
def new
@user = User.new(user_params)
end
def create
@user = User.new(params[:user])
if @user.save
redirect_to root_url, :notice => "Signed up!"
else
render "new"
end
end
private
def user_params
params.require(:user).permit(:email,:password)
end
end
查看:
<%= form_for @user do |f| %>
<p>
<%= f.label :email %><br/>
<%= f.text_field :email %>
</p>
<p>
<%= f.label :password %><br/>
<%= f.password_field :password %>
</p>
<p>
<%= f.label :password_conformation %><br/>
<%= f.password_field :password_conformation %>
</p>
<p class="button"><%= f.submit %></p>
<%end%>
已经尝试过here和here的建议。 删除user_params调用正在create方法中创建 ActiveModel :: ForbiddenAttributesError 错误。
答案 0 :(得分:3)
您在params[:user]
操作中没有new
,因此错误。
像这样重写new
:
def new
@user = User.new
end
正如@Pavan建议的那样,您也应该对create
方法进行更改:
def create
@user = User.new(user_params)
...
end
此处您将params[:user]
更改为user_params
。