2013-11-09 32 views
0

我在我的Rails 4应用程序的User控制器中使用了强大的参数。在Rails 4验证失败后表单值不会返回

def new 
    @user = User.new 
end 

def create 
    @user = User.new(user_params) 
    if [email protected] 
     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行动,没有先前字段填写被填充的用户,整个形式是空白。我错过了什么吗?

回答

0

我在使用单表继承,并预先指定了用户的类型。一旦我删除了STI,我的领域出现在没有问题的形式。

0

看来您在验证失败时创建了新的实例变量。

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

如果你不明白我的答案,请添加你的创建行为和表单视图的代码。

+0

我添加了我的新建,并在上面创建了操作。 – jmcharnes

+0

你的观点是什么样子?它需要form_for @user来预先填充。 – Kyle