在Rails 4中验证失败后,表单值不返回

时间:2013-11-09 22:50:38

标签: ruby-on-rails validation strong-parameters

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

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操作时,不会填充用户填写的所有字段,整个表单都是空白。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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