こんにちは、複数ページのフォームを介してユーザーを作成するアプリがあります (最後のステップ以外はデータベースとのやり取りは許可されていません!)
したがって、最初のページでユーザーはメールを入力し、2 番目に住所、3 番目の会社情報 (またはそれ以外) の 4 ページ目にすべての情報が表示され、ユーザーは db に保存されます。
私の解決策は次のとおりです。ステップ 1: 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-を使用します。 pattern.html