美好的一天,我有一个通过多页表单创建用户的应用程序(除了最后一步,不允许与 db 交互!)
所以在第一页用户输入他的电子邮件第二他的地址第三公司信息(或任何)第四页 - 它显示了所有信息并将用户保存到数据库中。
我的解决方案如下: 第一步:users_controller 的新操作。这是观点
- if notice
p[class='notice'] = notice
p Enter your personal data
= form_tag step2_path do
p
= label_tag 'Email'
= text_field_tag 'user[email]'
p
= submit_tag 'Continue'
用户#创建
def create
session[:user] = {}
redirect_to step2_path
end
step2,3,4是相同的动作。路线.rb
match 'step2' => 'user_signup#steps'
match 'step3' => 'user_signup#steps'
match 'step4' => 'user_signup#steps'
class UserSignupController < ApplicationController
def steps
@check = true
path = request.env['PATH_INFO'][1..-1]
update
if path == 'step4'
@user = User.create(session[:user])
end
render "user_signup/#{path}"
end
def update
session[:user] = if session[:user].present?
session[:user].merge(params[:user]) { |key, old, new| new }
else
params[:user]
end
end
并在每一步 (2,3,4) 上创建 params[:user][xxx] ......会有任何提示吗?
更新 我决定申请http://bassistance.de/jquery-plugins/jquery-plugin-validation/ 然后使用演示者模式http://blog.jayfields.com/2007/03/rails-presenter-模式.html