簡體   English   中英

防止用戶模型在Rails中多次加載

[英]Preventing user model from loading multiple times in Rails

我遇到的情況是,在同一查詢中的不同位置多次使用了用戶模型。 例如:我想遍歷用戶所屬的所有組,並獲得一個唯一的列表,列出他/她也是這些組成員的所有朋友。

現在,每次都會重新加載用戶模型,這將導致:1)性能下降2)理想情況下,我將使用實例變量來保存唯一的好友列表,但是由於重新加載了用戶模型,所以我無法這樣做。

用戶模型在請求期間是全局的非常有意義-知道我如何實現嗎?

假設使用“用戶模型”實際上是指當前用戶實例(用戶模型用於引用通過類User定義的模型),那么通常使用記憶技術。

例如,假設您的控制器中有current_user方法,則可以執行

def current_user
  return @current if defined?(@current)
  # In the following line load the current user. It's the first time
  # this method is requested. Further calls will return the cached instance.
  @current = ...
end

您可以這樣設置用戶:

def current_user
  @current_user ||= User.find(1)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM