【问题标题】:Form values not returning after failed validation in Rails 4在 Rails 4 中验证失败后表单值未返回
【发布时间】:2013-11-09 22:50:38
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我在上面添加了我的新操作和创建操作。
    • 您的视图是什么样的?它需要 form_for @user 才能预填充。
    【解决方案2】:

    我使用的是单表继承,并预先指定了用户的类型。删除 STI 后,我的字段在表单中显示没有问题。

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多