0

美好的一天,我有一个通过多页表单创建用户的应用程序(除了最后一步,不允许与 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

4

0 回答 0