我想在我的模特里使用Devise的current_user
幫手,這樣我就可以用before_save
在Dress
模型中保存Shop
的貨幣。如何在模型中使用current_user?
這是行不通的:
# Dress model
before_save :set_currency
def set_currency
self.currency = current_user.shop.currency
end
它在控制器工作:
def create
@dress = current_user.shop.dresses.create(params[:dress])
@dress.update_column(:currency, current_user.shop.currency)
end
但似乎效率不高,因爲它會在UPDATE
後COMMIT
做。 StackOverflow上的其他用戶表示current_user
不應在模型中使用。有沒有其他方式可以訪問模型中的current_user
?
我無法獲得第一個解決方案。我如何將用戶傳遞給該方法? –