我试图在Spree(版本2.1.9.beta)中覆盖BaseHelper中的link_to_cart
方法。
我在base_helper_decorator.rb
中创建了app/helpers/spree
并在那里复制了我要修改的方法(来自spree/core/app/helpers/spree/base_helper.rb):
# app/helpers/spree/base_helper_decorator.rb
Spree::BaseHelper.module_eval do
def link_to_cart(text = nil)
text = text ? h(text) : Spree.t('cart')
css_class = nil
if simple_current_order.nil? or simple_current_order.item_count.zero?
text = "#{text}: (#{Spree.t('empty')})"
css_class = 'empty'
(...)
end
end
end
现在对服务器的任何请求都会导致错误:undefined local variable or method 'simple_current_order' for #<#<Class:0x007fdea921b828>:0x007fdea22a1128>
。
simple_current_order
在core/lib/spree/core/controller_helpers/order.rb
如何在BaseHelper覆盖中使用此方法?