如何使用邪恶完成验证?

维杰·贾登

我有一个users_controller和一个user_steps_controller,它具有三个步骤:业务,:付款和:login

在user.rb模型中

class User < ActiveRecord::Base
validates_presence_of :fname, :lname, :email, :mob, :country, :state, :suburb, :postal ,:add
end

在检查验证时是否放了一些随机值,这也给了错误

Fname can't be blank
Lname can't be blank
Email can't be blank
Mob can't be blank
Country can't be blank
State can't be blank
Suburb can't be blank
Postal can't be blank
Add can't be blank

请帮帮我

这是我的users_controller

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:id])
    if @user.save
      session[:user_id]= @user.id
      @user.update_attributes(user_params )
      redirect_to user_steps_path
    else
      render :new
    end
  end

  private
  def user_params
    params.require(:user).permit( :fname, :lname, :email, :mob, :gender_male, :gender_female, :country, :state, :suburb, :postal ,:add, :cmpyname, :abnacn, :cmpyadd, :cmpydet,:cash, :paypal,:bsb,:usrname,:password_hash, :password_salt, :selcat, :protit, :prodes)
  end

user.rb

类User <ActiveRecord :: Base

validates :fname, :lname, :email, :mob, :country, :state, :suburb, :postal ,:add, :presence => true

attr_accessor :current_step

validates_presence_of :cmpyname, :abnacn, :cmpyadd, :cmpydet, if: -> { current_step?(:business) }
validates_presence_of :usrname,:password_hash, :password_salt, :selcat, :protit, :prodes, if: -> { current_step?(:login) }

def current_step?(step_key)
  current_step == step_key
end

end

user_steps_controller

class UserStepsController < ApplicationController
  include Wicked::Wizard
  steps :business, :login, :payment

def show
  @user = current_user
  render_wizard
end

  def update

    @user = current_user
    params[:user][:current_step] = step
    @user.update_attributes(user_params )
    render_wizard @user

  end

 private
  def user_params
    params.require(:user).permit( :cmpyname, :abnacn, :cmpyadd, :cmpydet,:cash, :paypal,:bsb,:usrname,:password_hash, :password_salt, :selcat, :protit, :prodes)
  end
end
芬妮

您的真正问题在这里:

@user = User.new(params[:id])

我假设params[:id]nil,因为否则将失败。基本上,您实例化一个User没有提供数据的a并尝试保存它。显然,您提供的那些验证将失败。如果您实际上是在提交包含用户数据的表单,则需要通过user_params以下定义:

@user = User.new(user_params)

如果需要以不同的步骤对用户模型进行验证,则需要根据表单的状态有条件地运行验证:

class User 
  attr_accessor :current_step
  validates_presence_of :business_related_attr, if: -> { current_step?(:business) }

  def current_step?(step_key)

    current_step.blank? || current_step == step_key
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用StepVerifier验证提供的Mono没有完成?

来自分类Dev

如何验证我的异步/等待正在使用I / O完成端口?

来自分类Dev

使用邪恶的PDF将PDF附加到电子邮件时如何指定布局

来自分类Dev

如何摆脱Pidgin / Purple的邪恶与沮丧状态?

来自分类Dev

如何摆脱Pidgin / Purple的邪恶与沮丧状态?

来自分类Dev

如何忽略Emacs邪恶环境中的空白

来自分类Dev

使用`exceptions`包的邪恶异常行为

来自分类Dev

如何使用<input>自动完成

来自分类Dev

如何使用<a>自动完成<li>

来自分类Dev

如何使用Clang CompilerInstance完成?

来自分类Dev

如何使用<a>自动完成<li>

来自分类Dev

UITextField:如何对“完成”键做出反应并验证输入

来自分类Dev

选择自动完成验证时如何获取对象?

来自分类Dev

培训完成后,验证数据会如何处理?

来自分类Dev

如何在Kubernetes中验证cronjob成功完成

来自分类Dev

如何验证应用程序是否完成了createForm语句?

来自分类Dev

如何使用比较验证器验证时间?

来自分类Dev

如何使用RequiredIf验证Laravel验证日期

来自分类Dev

如何使用尊重验证库验证$ _FILES

来自分类Dev

如何使用Promise,或在功能完成之前完成Ajax请求?

来自分类Dev

jQuery验证程序表单:完成远程电子邮件验证后,如何访问表单操作

来自分类Dev

如何在git中检测到邪恶合并?

来自分类Dev

Sidekiq工作者的邪恶PDF生成:如何传递部分?

来自分类Dev

如何在邪恶模式下在视线之间移动并越过换行

来自分类Dev

如何设置emacs进行Clojure,邪恶,提示,括号突出显示?

来自分类Dev

如何在邪恶模式下获得简单的导航窗口运动?

来自分类Dev

抵御邪恶的女仆,如何处理/ boot分区的删除

来自分类Dev

我如何退出emacs术语模式中充满邪恶的vim?

来自分类Dev

使用“ jk”键退出Emacs邪恶操作员模式

Related 相关文章

  1. 1

    如何使用StepVerifier验证提供的Mono没有完成?

  2. 2

    如何验证我的异步/等待正在使用I / O完成端口?

  3. 3

    使用邪恶的PDF将PDF附加到电子邮件时如何指定布局

  4. 4

    如何摆脱Pidgin / Purple的邪恶与沮丧状态?

  5. 5

    如何摆脱Pidgin / Purple的邪恶与沮丧状态?

  6. 6

    如何忽略Emacs邪恶环境中的空白

  7. 7

    使用`exceptions`包的邪恶异常行为

  8. 8

    如何使用<input>自动完成

  9. 9

    如何使用<a>自动完成<li>

  10. 10

    如何使用Clang CompilerInstance完成?

  11. 11

    如何使用<a>自动完成<li>

  12. 12

    UITextField:如何对“完成”键做出反应并验证输入

  13. 13

    选择自动完成验证时如何获取对象?

  14. 14

    培训完成后,验证数据会如何处理?

  15. 15

    如何在Kubernetes中验证cronjob成功完成

  16. 16

    如何验证应用程序是否完成了createForm语句?

  17. 17

    如何使用比较验证器验证时间?

  18. 18

    如何使用RequiredIf验证Laravel验证日期

  19. 19

    如何使用尊重验证库验证$ _FILES

  20. 20

    如何使用Promise,或在功能完成之前完成Ajax请求?

  21. 21

    jQuery验证程序表单:完成远程电子邮件验证后,如何访问表单操作

  22. 22

    如何在git中检测到邪恶合并?

  23. 23

    Sidekiq工作者的邪恶PDF生成:如何传递部分?

  24. 24

    如何在邪恶模式下在视线之间移动并越过换行

  25. 25

    如何设置emacs进行Clojure,邪恶,提示,括号突出显示?

  26. 26

    如何在邪恶模式下获得简单的导航窗口运动?

  27. 27

    抵御邪恶的女仆,如何处理/ boot分区的删除

  28. 28

    我如何退出emacs术语模式中充满邪恶的vim?

  29. 29

    使用“ jk”键退出Emacs邪恶操作员模式

热门标签

归档