ruby - class_eval 和公开课

标签 ruby spree

我正在使用 Spree,Spree 有一个名为 Order 的类,如下所示:

module Spree
  class Order
    # class definition.
  end
end

在我自己的应用中,我一直在自定义 Order,如下所示:

Spree::Order.class_eval do
  # customisations
end

我的问题是,我可以简单地这样做吗:

module Spree
  class Order
    # My own customisations.
  end
end

这有什么缺点吗?本质上,我想避免使用 class_eval

最佳答案

Benjamin,如果现有类不存在或未加载,则重新打开类不会通知您(但 class_eval 会引发错误)。

但是如果你有测试覆盖率,我想重新开课应该是安全的吧?

参见 https://stackoverflow.com/a/900508/474597以获得更详细的解释。

关于ruby - class_eval 和公开课,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291235/

相关文章:

css - Spree 电子商务 - 无法覆盖 css

Ruby - 将两个散列与一些类似的键合并

ruby 空格 : Is { :a => 1 } better than {:a => 1}?

ruby - apn_on_rails 多个应用程序出错

ruby-on-rails - spree 安装问题 - 使用 RVM

ruby-on-rails - 如何从主应用程序访问Rails Engines方法?

ruby-on-rails - Rake 不知道如何构建任务 'db:migrate'

ruby - .each_with_object ruby 解释?

ruby - 如何从同一目录中的文件中读取?

paypal - 如何将 paypal 循环 gem 与 Spree 集成