我需要存儲在一個變量從數據庫中的值,我需要從我的控制器的所有動作訪問這個變量。Rails 3 - 控制器中的構造函數?
例如,我有控制器home
,其具有3個動作:
- 約
- 接觸
- 博客
我試圖值存儲到一個變量中application_controller.rb
,但這不起作用。
我該怎麼做?
我需要存儲在一個變量從數據庫中的值,我需要從我的控制器的所有動作訪問這個變量。Rails 3 - 控制器中的構造函數?
例如,我有控制器home
,其具有3個動作:
我試圖值存儲到一個變量中application_controller.rb
,但這不起作用。
我該怎麼做?
這是關於持久性。爲了解決這個事實,網站是無狀態的,你可以通過將數據存儲在cookie中來保存數據。 Rails爲您提供了一種稱爲會話哈希的簡便方法。 您還可以使用閃光燈哈希(這也是一個會話哈希) ,在您獲得您希望存儲值的點只需撥打
session[:some_variable] = some_variable
然後,當你想要檢索該變量只是調用
some_variable = session[:some_variable]
更換some_variable用的東西,對你有意義
如果你想要爲所有控制器的操作做到這一點那麼的before_filter可能是有用的 這裏閱讀約before_filters http://apidock.com/rails/ActionController/Filters/ClassMethods/before_filter
不要存放大量的對象或會話中的對象的數組。如果你需要保持一個active_record對象的引用,然後保存記錄的僅僅是ID,那麼你可以檢索紀錄,當你需要它的發現
你說的是堅持一個值,控制器和行動就像一個分享currently_logged_in_user?對不起,我努力理解你的英語 – jamesc
是的,像你寫 – user1946705
好吧,我將添加我的答案 – jamesc