Как включить базу данных Rails 3.1.x в стандартное приложение ruby ​​через ActiveRecord? - PullRequest
1 голос
/ 16 февраля 2012

У меня есть приложение Rails 3.1.x, и мне нужно манипулировать данными в его базе данных через другое прямое приложение Ruby По сути, я просто получаю данные из модели в базе данных.

Очевидно, что это началось бы с чего-то вроде:

require 'rubygems'
require 'active_record'

ActiveRecord::Base.establish_connection(
  :adapter => 'mysql2',
  :encoding => 'utf8',
  :database => 'database_name',
  :username => 'username',
  :password => 'password',
  :host => 'hostname'
)

Но куда мне идти с уже настроенными моделями? Импортировать ли schema.rb или модели?

Буду признателен за более полный пример использования базы данных, используемой в Rails, в стандартном скрипте ruby.

Ответы [ 3 ]

1 голос
/ 16 февраля 2012

В Rails есть грабли и скрипт / бегун. Оба могут облегчить доступ к вашим моделям и прозрачно подключиться к базе данных.

Я использовал script / runner, когда извлекал файлы данных с удаленного хоста, и мне нужно было вставить его в базу данных под интерфейсом Rails. Это сработало очень хорошо.

Прочтите некоторые из этих вопросов о переполнении стека для получения дополнительной информации:

1 голос
/ 16 февраля 2012

Я делал это раньше, 1 приложение Sinatra и 5 приложений rails.

Однако мой подход требует использования подмодуля git и git.

Переместить каталог / models в новый проект с собственным репо.

Требовать этот проект как подмодуль (сопоставленный с / models) в каждом приложении, которое хочет его использовать. Это означает, что вам нужно всего лишь отредактировать одну версию моделей, чтобы обновить все приложения, которые их используют.

GitHub имеет довольно хорошее руководство по подмодулю: http://help.github.com/submodules/

1 голос
/ 16 февраля 2012

Вам понадобятся файлы моделей. schema.rb имеет значение только в том случае, если вы будете использовать миграции, и, вероятно, плохая идея разбивать их на два разных приложения. Используйте приложение Rails в качестве мастера и новое приложение Ruby в качестве зависимого приложения.

Просто убедитесь, что если у ваших моделей есть зависимости, они также включены.

В некоторых случаях может быть проще создать другой каталог в вашем хранилище Rails для размещения этого другого приложения Ruby, если они достаточно связаны друг с другом.

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