0
我想建立一個用戶註冊頁面,將跨越三個頁面並創建兩個記錄,一個用戶對象和票據對象:多頁帳戶創建
- 第一(指數)收集只是問題的一個總結字段。
- 第二個(signup_a)收集問題的詳細描述,自動填充前一個摘要,將會出現在票證對象中的一些相關聯的詳細信息,以及將在用戶對象中出現的名字/姓氏/電子郵件
- 第三個(signup_b)爲用戶對象添加更多細節,如地址,城市,州等,但沒有更多細節被添加到票證對象,因此可以在此處將其關閉。
- 最後一頁(signup_c)顯示所有的用戶/票務信息返回給客戶端,並在確認按鈕後保存。
目前,我有一個控制器(沒有錯誤檢查或簡化的respond_to代碼)的方法:
def index # Collects summary
@ticket = Ticket.new
end
def signup_a # Basic Ticket Info/User name and email
@ticket = Ticket.new(params[:ticket])
@user = User.new
end
def signup_b # Address and other misc. pref's
@ticket = Ticket.new(params[:ticket])
@user = User.new(params[:user])
end
def signup_C#Display final results
@ticket = Ticket.new(params[:ticket])
@user = User.new(params[:user])
end
def submit_ticket #Saves info
@ticket = Ticket.new(params[:ticket])
@ticket.save!
@user = User.new(params[:user])
@user.save!
end
問題是...我不希望保存的信息進入數據庫在每一個步驟,只有最後一個,但每個頁面的變量之前沒有顯式引用下一頁中沒有被傳遞。如何繼續添加到票證和用戶對象,以便信息一直保存到我最後一頁保存的地方! ?另外,當我執行@ user.save!方法...我仍然可以調用實例中的單個屬性或執行保存!根據信息是否存儲,將對象轉換爲真/假值?
爲signup_b和C不會,我需要做的是這樣 會話[:票據] << PARAMS [:門票] 什麼?看起來這隻會覆蓋上一步? – Kevin 2009-12-17 06:12:01
另外,我聽說在會話中存儲模型對象是不好的? – Kevin 2009-12-17 06:13:23
而不是在「b」和「c」步驟中覆蓋session [:ticket],可以將這些頁面中的各個元素添加到現有會話[:ticket]對象中,即「session [:ticket] [:field1] = params [:ticket] [field1]「等。 – Legion 2009-12-17 06:19:54