在gem中使用ActiveRecord模型 - 如何处理数据库配置

时间:2010-08-23 13:53:06

标签: ruby-on-rails ruby

我在rails应用程序中有几个活动记录模型,我想将这些模型提取到gem中,以便我可以在多个Web应用程序中轻松使用它们。除了传递模型的配置外,这个过程看起来非常简单。我:

  1. 将配置yaml文件添加到gem中,从而确保所有应用程序中的数据库始终相同 - 看起来很严格,尤其是测试和开发,尽管生产数据库始终保持一致。
  2. 使用ActiveRecord挂钩在配置数据库的config目录中查找database.yml文件?如果是这样,我应该使用哪些挂钩?
  3. 这是一个愚蠢的想法。如果你有更好的方法来解决这个问题,我会全力以赴。我不想复制和粘贴。

2 个答案:

答案 0 :(得分:3)

您应该使用host rails app的数据库配置。您的插件或gem应仅包含数据库迁移,以及从主机rails应用程序运行它们的rake任务(例如myplugin:db:migrate

如果您的模型需要其他配置文件,您应该创建一个rake任务(例如myplugin:install)将其复制到主机应用程序的config目录中。 (此任务也可以自动调用db:migrate任务。)

答案 1 :(得分:1)

为什么要在gem中嵌入database.yml文件?每个rails应用程序都应该使用它自己的database.yml

我会将所有模型放入一个插件中,并将其包含在需要模型的每个rails应用程序中。