Ruby on rails 如何使用wicked gem在rails上进行验证
:fname、:lname、:email、:mob、:gender\u male、:gender\u femal、:country、:state、:郊区、:postal、:add无法保存在数据库中…请帮助并验证 这是我的用户控制器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
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“客户端验证”进行验证