Использование моделей ActiveRecord в геме - как работать с конфигурацией базы данных - PullRequest
2 голосов
/ 23 августа 2010

У меня есть несколько активных моделей записей в приложении rails, и я хотел бы извлечь эти модели в самоцвет, чтобы я мог легко использовать их в нескольких веб-приложениях. Процесс кажется довольно простым, за исключением передачи конфигурации для моделей. Должен ли я:

  1. Добавьте файл конфигурации yaml в гем, таким образом гарантируя, что базы данных всегда будут одинаковыми во всех приложениях - кажется жестким, особенно для тестирования и dev, хотя базы данных для производства всегда будут согласованными.
  2. Используйте перехватчики ActiveRecord для поиска файла database.yml в каталоге config с определенной базой данных? Если да, то какие крючки я должен использовать?
  3. Это глупая идея. Если у вас есть лучший способ справиться с этим, я весь в ушах. Я бы предпочел не копировать и вставлять.

Ответы [ 2 ]

3 голосов
/ 23 августа 2010

Вы должны использовать конфигурацию базы данных приложения host rails. Ваш плагин или гем должен содержать только миграции баз данных и задачу rake для их запуска из приложения host rails (например, myplugin:db:migrate)

Если вашим моделям нужен какой-то другой файл конфигурации, вам нужно создать задачу rake (например, myplugin:install), чтобы скопировать ее в каталог конфигурации вашего хост-приложения. (Эта задача также может вызывать задачу db: migrate автоматически.)

1 голос
/ 23 августа 2010

Почему вы хотите встроить файл database.yml в гем?Каждое приложение rails должно использовать свою собственную базу данных .yml

Я бы поместил все модели в плагин и включил их в каждое приложение rails, которому нужны модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...