0

User在 Rails 4 应用程序的控制器中使用了强参数。

def new
    @user = User.new
end

def create
    @user = User.new(user_params)
    if !@user.save
        render :new
    end
end    

private

def user_params
    params.require(:user).permit(:first_name, :last_name, :address_1, :address_2, :city, :state, :zip, :phone, :email, :password, :ssn)
end

User我在模型中也有验证。

    validates_presence_of :first_name, :last_name

如果用户填写我的表单来创建他们的帐户并且没有通过验证,那么当控制器呈现new操作时,用户之前填写的字段都不会被填充,整个表单都是空白的。我错过了什么吗?

4

2 回答 2

0

验证失败时,您似乎创建了新的实例变量。

您必须以新形式使用失败的实例变量。

如果您无法理解我的回答,请添加您的创建操作代码和表单视图。

于 2013-11-09T23:15:04.310 回答
0

我使用的是单表继承,并预先指定了用户的类型。一旦我删除了 STI,我的字段就出现在表单中没有问题。

于 2013-12-05T20:58:11.033 回答