Ruby on rails 使用Rails的特定于客户/客户端的代码

Ruby on rails 使用Rails的特定于客户/客户端的代码,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在一个项目中,Rails 3应用程序有几个客户/客户端,其中一些客户/客户端需要特定的代码,尽管我们试图通过配置应用程序来解决尽可能多的需求 我们希望将所有客户代码放在一个分支中,但放在单独的目录中。因此,我现在正在试验自动加载路径: config.autoload_paths += Dir[Rails.root.join('customer', 'abc', 'app', 'models')] 这适用于新文件/类/模型,但无法使用此方法修改现有模型/类。例如,我想从customer/abc/

在一个项目中,Rails 3应用程序有几个客户/客户端,其中一些客户/客户端需要特定的代码,尽管我们试图通过配置应用程序来解决尽可能多的需求

我们希望将所有客户代码放在一个分支中,但放在单独的目录中。因此,我现在正在试验
自动加载路径

config.autoload_paths += Dir[Rails.root.join('customer', 'abc', 'app', 'models')]
这适用于新文件/类/模型,但无法使用此方法修改现有模型/类。例如,我想从
customer/abc/app/models/test\u model.rb
app/models/test\u model.rb
添加一个方法:

class TestModel
  def self.test_me; 123; end
end
不幸的是,这覆盖了整个类/模型,而不仅仅是这个方法。我知道我可以在Ruby中实现这一点,即使是像
String
这样的核心类:

class String
  def to_bla; "bla"; end
end

rails模型是否也有这种行为,或者是否有更好的方法将特定于客户的代码与项目的其余部分分开?我更喜欢这样一种解决方案,即我不必在要自定义的文件中插入
require
s或
include
s。在开发模式下,rails会自动重新加载文件以更改特定于客户的文件,这也非常好。

只需在自定义文件中添加基本文件即可。