- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在为我的在线商店使用 Spree Commerce。我想在结帐过程中更改一些行为,这些行为在 spree gem 内的 app/models/spree/order/checkout.rb
中定义。所以我在我的应用程序中的同一点创建了一个 checkout_decorator.rb
。
问题是,我的更改没有加载。另一个问题是,模块内的所有内容都在一个方法内,即 def self.included(klass)
方法。所以我想我必须覆盖整个文件,而不是只覆盖一种方法。这是我的装饰器的样子:
checkout_decorator.rb
Spree::Order::Checkout.module_eval do
def self.included(klass)
klass.class_eval do
class_attribute :next_event_transitions
class_attribute :previous_states
class_attribute :checkout_flow
class_attribute :checkout_steps
def self.define_state_machine!
# here i want to make some changes
end
# and the other methods are also include here
# for readability, i don't show them here
end
end
end
来自 spree gem 的原始文件 checkout.rb
如下所示:
module Spree
class Order < ActiveRecord::Base
module Checkout
def self.included(klass)
klass.class_eval do
class_attribute :next_event_transitions
class_attribute :previous_states
class_attribute :checkout_flow
class_attribute :checkout_steps
def self.checkout_flow(&block)
if block_given?
@checkout_flow = block
define_state_machine!
else
@checkout_flow
end
end
def self.define_state_machine!
# some code
end
# and other methods that are not shown here
end
end
end
end
end
所以我的问题是:为什么这不起作用? module_eval
是执行此操作的正确方法吗?我尝试了 class_eval
但它也不起作用。我该如何解决这个问题?
最佳答案
module_eval 方法对您不起作用。
你应该看看 Spree Checkout Flow Documentation有关如何自定义结帐流程的一些很好的示例。这是自定义结帐流程的推荐方法,因为您不需要复制/粘贴一大堆代码。
关于ruby-on-rails - Spree 模块装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810506/
嗨,我需要一个商店软件,我可以在其中提供来自不同供应商的产品。例如可以从 3 个不同的供应商处以不同的价格购买一块 watch 。亚马逊也这样做。 (见 http://www.amazon.de/gp
我在 spree 时遇到了麻烦,不知道如何处理。 我无法更改主要货币。 我该怎么做? 最佳答案 它在 Spree 2.0.0 中更容易,而且显然它也可以在以前的 spree 版本中工作。 转到您的 c
嘿,我已经尝试了很多创建 spree 扩展,但经过数周的努力,我也没有从中得到预期的结果。我已经关注了关于扩展教程的 spreecommerce 网站,但我发现它对于 spree 初学者来说还不够。
是否有类似Graree的Spree(Rails)之类的东西?我已经看到了关于https://stackoverflow.com/questions/6543129/grails-ecommerce-f
我遇到 Spree 问题,当我尝试转到/admin 页面时,我得到 Spree 未初始化常量 Spree::UserSessionsController。我被重定向到/login 并且出现错误。 St
我在基本的 Spree 3.0.0 安装上使用 Braintree。 我创建了一个沙盒帐户,并在 Braintree 的管理面板中添加了商家 ID 和 key 。我能够完成一个订单,一切看起来都很好,
大家好,Spree 我正在使用 spree 2.0.3。我想将“SHOP”文本更改为“Grab food”、“Cart”-->“food cart”,并在旁边的“shop by categories”
大家好,Spree 我正在使用 spree 2.0.3。我想将“SHOP”文本更改为“Grab food”、“Cart”-->“food cart”,并在旁边的“shop by categories”
In Spree 3.1 标准主题(开箱即用) 我尝试更改背景图片,但没有用。也许路径是错误的。帮助需要。这是我所做的。 上传图片为/app/assets/images/NewBackGroundIm
我面临在新的 spree 4.4 上找不到丢失的“spree-dashboard.js”文件。它不是通过运行 yarn install 修复的。 最佳答案 运行以下命令对我有用 yarn 构建 关于r
我正在尝试 RAILS_ENV=production run rake paperclip:refresh:thumbnails CLASS=Spree::Image 在我当前的 Rails 应用程序
有谁知道是否可以向产品的关键属性集(名称、描述、永久链接、元描述等)添加新属性?这个想法是我希望在创建产品时使用这些属性,而不是通过产品属性添加它们。 谢谢。 最佳答案 最简单的方法是通过迁移将属性直
我正在尝试使用以下方法覆盖 base_helper.rb 的辅助方法: module Spree module BaseHelper.class_eval do def taxons_tr
您好,我的 order_decorator.rb 中有以下代码行 Spree::Order.state_machine.before_transition :to => :delivery,
目前,我正在尝试将购物车链接添加到我页面上的下拉菜单中。代码如下: "> "> Check
因此,我们希望将我们网站的一部分重新构建为 Rails 应用程序。最初的计划是拥有一个主要的“站点”应用程序,其中包含许多具有分区功能的插件应用程序(Rails 3.1 引擎)——一个商店组件、一个社
我正在使用 spree 2.1.5、rails 4.0.2、sass-rails 4.0.0。 spree 文档位于 http://guides.spreecommerce.com/developer
我正在使用 spree 并制作在线购物车。我想在每页上看到 12 个产品,但现在它显示 10 个我该如何更改。 在我的 spree.rb 文件中,我放了这段代码,但它不能工作 Spree::Confi
嗨,我也是 spree 和 rails 的新手。请在这件事上给予我帮助。 我想在页面的侧边栏上显示选定的分类单元。 可以说我的分类结构是这样的 Dresses -Party -sub
如何在 Spree 结账程序中删除帐单(或送货)地址?我正在使用 spree 1.3 最佳答案 您可以通过从 checkout_flow 中删除送货步骤来删除送货地址。通过将此代码放入您的应用程序中来
我是一名优秀的程序员,十分优秀!