我试图覆盖Solidus代码并想知道我的选择是什么?
特别是我正在尝试更改地址以使手机可选。
答案 0 :(得分:1)
Solidus旨在提供更好的自定义界面 - they want to avoid you opening up the Solidus/Spree classes - 因为它增加了破坏系统的可能性。
app/models/spree
下创建一个文件,并在必要时添加额外的spree名称空间config/initializers/spree.rb
在实际问题中 - 没有Spree地址的扩展名,装饰者不会工作因为我们没有调用代码(比如我们编写的视图中),所以我们需要更改Spree代码与前置。
应用程序/模型/礼包/ optional_phone_address.rb
module Spree
module OptionalPhoneAddress
# require_phone?
# - no longer require a phone
# - a * no longer appears next to phone in the view
#
def require_phone?
false
end
end
end
配置/初始化/ spree.rb
#
# Customization of Spree Code
#
Spree::Address.prepend Spree::OptionalPhoneAddress