Где я могу настроить ActiveRecord при создании драгоценного камня? - PullRequest
0 голосов
/ 08 февраля 2019

Я создаю драгоценный камень, который я построил с bundle gem GEMNAME.Я следую некоторым инструкциям, чтобы использовать ActiveRecord в моем Gem, и это говорит мне, чтобы поместить некоторую конфигурацию в мой app/main.rb файл:

require 'active_record'
require_relative './models/movie'

def db_configuration
  db_configuration_file = File.join(File.expand_path('..', __FILE__), '..', 'db', 'config.yml')
  YAML.load(File.read(db_configuration_file))
end

ActiveRecord::Base.establish_connection(db_configuration["development"])

Но я знаю, что файловая структура гема отличается и важна, а bundler не создал мне папку app, которая, как я полагаю, по уважительной причине.

Так, где я могу поместить этот файл / код?

1 Ответ

0 голосов
/ 10 февраля 2019

При создании гемов, расширении активной записи, лучше не настраивать это самостоятельно.Пользователи Gem будут включать ваш драгоценный камень и, вероятно, будут иметь собственную конфигурацию базы данных.

Таким образом, ваш гем не должен настраивать хост-приложение или подключаться к базе данных.Но вы можете сделать это в тестах.

Обычно вам просто нужно определить Rails Engine в вашем геме и использовать фиктивное приложение для тестирования.Стоит прочитать это руководство Начало работы с двигателями .Описывает, как расширить приложение rails в вашей библиотеке.

Например, gem, расширение хост-приложения, посмотрите мой gem https://github.com/bolshakov/activeadmin_sortable_table

...