Ruby on Rails/ActionController/Sessions
外觀
有關會話的技術解釋,請檢視關於會話的維基百科文章。
在 Rails 中,您有一些選項可以儲存會話。大多數情況下,您希望將會話儲存在伺服器上,但是對於與安全性相關的資料,您可能希望考慮將會話儲存在資料庫中。要更改會話儲存,請編輯config/initializers/session_store.rb並務必仔細閱讀RoR 網站。
與引數一樣,Rails 提供了一種簡單的方法來訪問您的會話。請考慮以下示例
def show_details
#we may use this inside a user-specific action
User.find(session[:current_user_id])
end
如您所見,您以類似於引數的方式訪問會話。儲存會話並不複雜
def index
#we have some code here to get the user_id of a specific (logged-in) user
session[:current_user_id] = id
end
要銷燬會話,只需將它分配一個 nil 值
session[:current_user_id] = nil
快閃記憶體是會話中非常特殊且有用的部分。您可能已經在檢視檔案中發現過它。以下是它們的工作原理:如上所述,快閃記憶體很特殊。它們只存在一次,並在每次請求後被銷燬。快閃記憶體可用於向用戶顯示錯誤訊息或通知(例如,當用戶嘗試登入或其請求導致錯誤時)
在操作中,快閃記憶體可以使用類似於
def check
#code that does some validation
flash[:notice] = "Successfully logged in"
end
在檢視中,您可以像這樣訪問它
<% if flash[:notice] -%>
<%= flash[:notice] %>
<% end -%>
<!-- maybe some HTML-Code -->
<% if flash[:warning] -%>
<%= flash[:warning] %>
<% end -%>
如示例所示,您不限於單個快閃記憶體。可以按您在控制器中定義的名稱訪問多個快閃記憶體。