【发布时间】:2012-10-21 16:09:10
【问题描述】:
如何在 Spree 结账程序中删除帐单(或送货)地址?我正在使用大礼包 1.3
【问题讨论】:
标签: ruby-on-rails spree
如何在 Spree 结账程序中删除帐单(或送货)地址?我正在使用大礼包 1.3
【问题讨论】:
标签: ruby-on-rails spree
您可以删除送货地址,方法是从checkout_flow 定义中删除交付步骤,方法是将此代码放入您的应用程序app/models/spree/order_decorator.rb:
Spree::Order.class_eval do
checkout_flow do
go_to_state :address
go_to_state :payment, :if => lambda { |order| order.payment_required? }
go_to_state :confirm, :if => lambda { |order| order.confirmation_required? }
go_to_state :complete
remove_transition :from => :delivery, :to => :confirm
end
end
由于没有送货步骤,Spree 不会询问订单的送货地址或送货信息。
【讨论】:
如果你使用 spree-core,我有一个替代品
在您的 view/spree/checkout/edit 文件中,有一个 render 语句涉及 error_messages.html.erb = 渲染 :partial => 'spree/shared/error_messages', :locals => { :target => @order }
所以现在,你必须从_error_messages.html.erb中删除“ship”名称,这样就不会出现这种错误了。
在您的 spree/shared/_error_message 文件中进行以下更改:
-target.errors.full_messages.each 执行 |msg|
-除非 (msg.include?("Ship"))
= msg
请记住,在此处使用循环相应地更改错误计数。
目前我没有使用它,所以发表评论
//= t(:errors_prohibited_this_record_from_being_saved, :count => target.errors.count)
【讨论】: