Module: BaSpree::AddressDecorator
- Defined in:
- app/models/ba_spree/address_decorator.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#show_company_address_field? ⇒ Boolean
@gem-override spree_core-5.3.6/app/models/spree/address.rb#show_company_address_field? 本家は Store#prefers_company_field_enabled? を見るが、ba_spree では常に会社名欄を表示する。 日本の EC では法人向け配送のため会社名欄が求められることが多いため。.
Class Method Details
.prepended(base) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/models/ba_spree/address_decorator.rb', line 3 def self.prepended(base) # NOTE: Spree::Address は Spree 標準で `after_create :set_user_attributes` が設定されており、 # 配送先・請求先の区別なく Address 作成時に User の名前等が上書きされていたが、 # 「プレゼント送付先(配送先)の名前で User の本名が上書きされる」問題があったため、 # Spree 標準の callback そのものを解除する。 # 代わりに User#bill_address_id 変更時のコールバック(Spree::UserBillAddressSyncDecorator)で # 請求先からのみ User 情報を同期するように変更した。 # raise: false は必須。prepend されたモジュールが再度 prepend されると Ruby は # ancestors を変えないままこの prepended フックだけを再実行するため、2回目以降は # 解除済みの callback を探して ArgumentError になる。development では # engine の activate が to_prepare からリロードのたびに decorator を load し直すので、 # ガードがないとファイルを1つ編集しただけでリロードが落ちる。 # @see https://github.com/be-agile/giga-repeat/issues/1307 base.skip_callback :create, :after, :set_user_attributes, raise: false base.after_initialize :set_default_values, if: -> { new_record? && user.present? } end |
Instance Method Details
#show_company_address_field? ⇒ Boolean
@gem-override spree_core-5.3.6/app/models/spree/address.rb#show_company_address_field? 本家は Store#prefers_company_field_enabled? を見るが、ba_spree では常に会社名欄を表示する。 日本の EC では法人向け配送のため会社名欄が求められることが多いため。
25 26 27 |
# File 'app/models/ba_spree/address_decorator.rb', line 25 def show_company_address_field? true end |