我正在将rails应用的models文件夹转换为gem,因此更多rails应用可以使用相同的域模型层。
在初始rails应用程序中,所有模型文件的加载都由activesupport处理,因此在任何地方都没有require语句。但是在gem版本中,它必须手动完成。我看了一下流行宝石的代码,比如rspec,factory_girl和state_machine,看起来它们都需要一个文件中所有必需的源文件,通常以项目命名。
这种方法的缺点是你需要维护一个列出所有其他文件的文件,这看起来有点笨拙。即使我已经遇到了这个问题,我也可以预见到依赖性问题。
另一种方法是让每个源文件都需要它所需的文件。这可以在独立的gem以及rails应用程序中运行。但我还没有看到使用这种技术的宝石的例子,所以我想知道是否有一个我没有看到的缺点?
感谢
答案 0 :(得分:2)
您正在谈论模型文件,如果是这样,只需采用与标准Rails应用程序相同的结构,并使您的宝石继承自Engine
。一切都将无痛地包括在内。