2009-11-14 41 views
-1

我試圖使用attr_accessor:offset從用戶模型中的current_user存儲數據。我想使用current_user模型中存儲的偏移量來獲取不同模型的記錄。當我從不同的模型中更改此偏移量時,它不會保存它?ruby​​ on rails:將current_user的數據存儲在不同的模型上

我覺得一個數據庫列的後遺症是矯枉過正。這個偏移量將是0..n整數。

+0

似乎不明白 - 你能否進一步解釋和/或給我們一個架構? – 2009-11-14 16:05:24

回答

1

假設我理解正確你的問題:

的數據庫列是真正的數據在超過裝載的模型堅持的唯一途徑。 current_user變量通過將它存儲在控制器和視圖的會話中來解決這個問題。無論您嘗試使用current_user,我都會覺得您的問題源於current_user從一個請求傳遞到下一個請求的方法,您對current_user所做的任何更改都不會傳遞到下一個請求。

current_user id在登錄時存儲在會話哈希中。第一次將current_user作爲控制器操作的一部分調用時,authenticated_system模塊將根據會話哈希中的id找到用戶。這意味着您對current_user所做的任何更改都會丟失,除非您在控制器操作完成之前將其保存。數據庫列是唯一的方法。

但是,您可以完全忽略當前用戶,並使用session[:offset] = offset將偏移量添加到會話哈希中。以同樣的方式在您的控制器/視圖中參考它。只要你的用戶沒有結束他們的瀏覽會話session[:offset]將返回你試圖保留的偏移值。

但是,如果偏移將成爲用戶首選項,並且應該在登錄會話之間持續存在,那麼它確實屬於您的用戶模型中的數據庫列。

+0

謝謝你的回覆。這個偏移量必須在新會話時設置爲0,這樣會話就足以存儲這個偏移量。該偏移量被傳遞到用戶可以在x和y軸上導航的牆上的圖片導航。我做了desicion堅持數據分貝,它似乎工作。希望這將不會導致大問題,當有更多的用戶?! – ttomppa 2009-11-18 18:12:52