2010-02-15 26 views
2

我在rails上使用ruby,並在我的網站上放置了用戶可以單擊保存的內容,並將它們重定向到同時具有登錄和註冊的頁面,以便用戶可以繼續使用任一選項並保存內容。創建一個問題,以顯示適當的用戶驗證錯誤,B/C我需要使用redirect_to users/new爲了傳遞PARAMS與用戶保存的對象ID,如果我使用render:new,錯誤是顯示但對象標識丟失。任何人有任何解決方案?在Ruby on Rails中渲染w參數或重定向w錯誤

回答

2

在會話中存儲原始項目ID,繼續進行正常的登錄/註冊過程,完成時,如果會話中有保存項目,則重定向到處理保存的操作(現在可以抓取來自會話的項目ID並繼續)。

+2

以防萬一:可能不是物品本身,但它的ID) – 2010-02-15 09:47:07

+0

是的。編輯以反映評論。 – 2010-02-15 23:59:14

+0

是啊,這就對了。謝謝 – TenJack 2010-02-16 00:51:32

0

「出於好奇,在會話中保存對象本身有什麼問題?這樣我就不必再次執行第二次數據庫查找來再次找到對象。」 --TenJack (這應該可能是一個新的StackOverflow問題)

在會話中保存一個項目是一件壞事 - 因爲當你遷移你的模型對象(例如添加一列或類似的東西)時,數據在會話中現在不再是模型類型的有效對象。例如,它仍然具有舊的屬性列表,而不是新的屬性列表......並且它將顯示爲無效對象。

這就是爲什麼最好只存儲id--因爲你會從db中獲取新的,正確實例化的對象。