Ruby on rails 如何使用wicked gem在rails上进行验证

Ruby on rails 如何使用wicked gem在rails上进行验证,ruby-on-rails,ruby,Ruby On Rails,Ruby,:fname、:lname、:email、:mob、:gender\u male、:gender\u femal、:country、:state、:郊区、:postal、:add无法保存在数据库中…请帮助并验证 这是我的用户控制器 def new @user = User.new end def create @user = User.new(params[:id]) if @user.save session[:user_id]= @user.id

:fname、:lname、:email、:mob、:gender\u male、:gender\u femal、:country、:state、:郊区、:postal、:add无法保存在数据库中…请帮助并验证

这是我的用户控制器

def new
    @user = User.new
  end

  def create
    @user = User.new(params[:id])
    if @user.save
    session[:user_id]= @user.id
      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, :password_confirmation, :selcat, :protit, :prodes)
  end
 include Wicked::Wizard
  steps :business, :login, :payment



def show
  @user = current_user
  render_wizard
end

  def update
    @user = current_user
    if @user.update_attributes(user_params)
      render_wizard @user
    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, :password_confirmation, :selcat, :protit, :prodes)
  end
这是我的用户步骤控制器

def new
    @user = User.new
  end

  def create
    @user = User.new(params[:id])
    if @user.save
    session[:user_id]= @user.id
      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, :password_confirmation, :selcat, :protit, :prodes)
  end
 include Wicked::Wizard
  steps :business, :login, :payment



def show
  @user = current_user
  render_wizard
end

  def update
    @user = current_user
    if @user.update_attributes(user_params)
      render_wizard @user
    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, :password_confirmation, :selcat, :protit, :prodes)
  end
我的迁移表

 class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :fname
      t.string :lname
      t.string :email
      t.string :mob
      t.string :gender_male
      t.string :gender_female
      t.string :country
      t.string :state
      t.string :suburb
      t.string :postal
      t.string :add
      t.string :cmpyname
      t.string :abnacn
      t.string :cmpyadd
      t.string :cmpydet
      t.string :cash
      t.string :paypal
      t.string :bsb
      t.string :usrname
      t.string :password_hash
      t.string :password_salt
      t.string :selcat
      t.string :protit
      t.string :prodes
      t.timestamps
    end
  end
end
class CreateUsers
在迁移过程中,您将password\u hash和password\u salt作为字段,并在控制器中只提到password。更新控制器中的user_params方法,如下所示-

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

还应尽量为字段保留适当的名称,因为从长远来看,这将有助于您。

在您的用户\u controller.rb中编辑创建

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

这将添加您数据库中的数据

Wicked gem已在此处由Ryan Bates解释,请不要否决我这是我的第一个问题,并给出一些建议,但由于他使用了attr ACCESS,这在rails 4和rails 3视频中未使用,仍然会让您了解Wicked gem。请添加一些错误屏幕截图,您的模型代码和日志,如果您现在是,错误不来…但是数据库中的密码字段是空的,如果您帮助解决您的问题,请考虑接受答案,这是一个独立的问题,与邪恶有关。我怀疑您也需要更改wicked控制器中的用户参数。请遵循wicked上的railscast,因为它有更详细的解释,其余部分在rails 3和rails 4中保持不变。您可以使用gem“客户端验证”进行验证