Добавить записи из внешнего скрипта ruby - PullRequest
2 голосов
/ 17 декабря 2008

Как лучше всего добавлять записи в базу данных из внешнего скрипта. Я хотел бы использовать activerecord, но я не уверен, как это сделать вне структуры каталогов rails.

1 Ответ

8 голосов
/ 17 декабря 2008

Вы можете использовать activerecord в ruby. Предполагая, что вы установили необходимый драйвер базы данных. Вы можете сделать что-то похожее на

require 'activerecord'

ActiveRecord::Base.establish_connection(
  :adapter => 'your_database_adapter',
  :host => 'your_host',
  :username => 'username'
  :password => 'password',
  :port => 'port_number'
)

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

class ModelName < ActiveRecord::Base
  has_many :modelz
end

class Modelz < ActiveRecord::Base
  belongs_to :model_name
end

И вы настроены. (Совершенно верно, вы можете делать все, что можете в рельсах, используя активную запись, как только вы установили соединение с базой данных, даже если у вас есть связи между моделями). Вы можете делать все, что захотите, с объектом только что созданного вами класса модели. Как,

ModelName.find(:all)

@model = ModelName.new
@model.user_id = rand(10)
@model.save

и т. Д. И т. Д.

Если у вас нет схемы, не паникуйте. Вы можете создать его, вставив код simlar в следующее после установления соединения с базой данных.

ActiveRecord::Schema.define do
  create_table :sometable do |table|
    table.integer :int1, :int2
    table.string :str1, :str2
  end

  create_table :yetanothertable do |table|
    table.integer :anotherint
    table.text :sometext
  end
end

Это должно работать нормально. Код, приведенный здесь, является примером и может не быть синтаксически совершенным. Это также должно помочь. Однако определение схемы выполняется старыми путями.

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