使用Rails 3.2。假設我有10張新照片需要上傳,我需要將我的current_user.id
與每個新記錄相關聯。由於某些原因,photos_controller.rb
是空白的,因爲它與另一個型號Shop
嵌套。這裏是我的代碼:記憶當前用戶對象before_create
class Photo < ActiveRecord::Base
belongs_to :attachable, :polymorphic => true, :counter_cache => true
belongs_to :user, :counter_cache => true
before_create :current_user_id
before_create :associate_current_user
def current_user_id
@current_user_id ||= UserSession.find.user.id
end
private
def associate_current_user
self.user_id = @current_user_id
end
end
很清楚,如果有要創建10個新的紀錄,我希望模型找到current_user
一次,然後把它從緩存中(一個記憶化技術),但因爲我使用的是before_create
,所以current_user
被查詢了10次,而不是從緩存中獲取它。
我能做些什麼來緩存@current_user_id
?
謝謝。
**這是一個模型**,'@ current_user_id'是一個**實例變量**。每個'Photo'的新實例都獲得它自己的'@ current_user_id'。十個實例,十個變量,十個查詢。 – Substantial