[英]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.