在我的rails應用程序中,我有一些用戶可以支付的事件。我需要能夠根據當前用戶更改事件價格。取決於rails中的current_user的模型方法
*我知道已經有很多關於模型訪問CURRENT_USER話題,但它不是我要找的。*
我有2個以下車型(真正簡單)。 Checkout管理與事件相關的所有支付事件(我需要在一個單獨的模型中使用它,因爲它與事件中的多態關聯在真實應用程序中)。
class Event < ActiveRecord::Base
attr_accessible :ticket_price, :checkout
has_one :checkout
checkout_price
# Here I'd like to be able to use the current_user to change price accordingly
# Example: user.premium? ? ticket_price/2 : ticket_price
ticket_price
end
end
class Checkout < ActiveRecord::Base
attr_accessible :event
belongs_to :event
def total
event.checkout_price
end
def free?
total == 0
end
end
我能明顯界定checkout_price(user)
但我要通過它的每一個地方(例如event.checkout_price(current_user)
,checkout.total(current_user)
,checkout.free?(current_user)
)。
我知道從模型中訪問current_user
是個不好的習慣(而且我絕對不想這樣做),但是在我的情況下,有沒有比作爲參數始終傳遞current_user
作爲參數的另一種解決方案?
謝謝,我必須適應它,但它看起來非常好! (特別是'醉酒折扣';))。 – TimPetricola
@TimPetricola,我的榮幸:)您可以通過Google服務對象獲取更多信息。 –