【发布时间】:2015-05-21 12:38:14
【问题描述】:
我有一个 users_controller 和一个 user_steps_controller,它包含三个步骤:business、:payment 和 :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
用户.rb
类用户<: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
【问题讨论】:
-
您可能需要发布一些用于测试验证的表单代码。
-
请发布您的控制器代码,触发用户创建
-
我发布了 users_controller @Stanislav
标签: ruby-on-rails ruby-on-rails-3 wicked-pdf