2012-07-04 83 views
0

使用Rails 3創建第一,登錄或註冊後

在通常的應用程序,表單纔會出現,如果用戶登錄後,可在控制器中,我們將在驗證運行另一個檢查,我們保存新的前記錄。

但是,無論他是否登錄,我都希望向所有人顯示該表單。當訪問者提交附件等表單時,它會檢查用戶是否已登錄。如果他不是,那麼將他重定向到登錄/註冊頁面,當他完成時,只有這樣才能保存新記錄。

我知道這可以通過createsave來實現,但有人可以更詳細地闡述如何在更清晰的解釋中達到此目的嗎?

回答

1
  • 用戶提交表單
  • 控制器認爲用戶沒有登錄
  • 控制器仍然存在提交表單到數據庫
  • 控制器設置的cookie與新對象的ID
  • 控制器重定向到登錄
  • 用戶登錄
  • 控制器從數據庫中檢索持久表單信息
  • 控制器將對象分配給用戶

運行定期作業來清理舊的未聲明表單數據。

+0

堅持部分對我來說是新的。任何例子? – Victor

+0

persists =='save' –

0

嗯,在視圖中,你會顯示錶單總是沒有任何形式的登錄檢查。這裏棘手的部分是保存用戶在重定向到登錄之前發送的數據。

一個解決辦法是到後期數據保存在cookie中,然後將用戶重定向到登錄後在同一個頁面,引發再次創造

在像你描述你會做完全控制:

class ThingController 
    def create 
    if user_logged_in? 
     if cookie[:stuff] 
     # create the stuff from cookie and remove it 
     else 
     # create the stuff 
     end 
    else 
     # redirect him to login with a callback to this same place   
    end 
    end 
end