как потребовать, чтобы активная запись работала вне рельсов

мне нужна активная запись, но я работаю вне рельсов (вот почему: Simple Ruby Input Библиотека проверки). мне нужно требовать весь драгоценный камень рельсов, или я могу быть DRYer?


person user276712    schedule 07.09.2010    source источник


Ответы (2)


Вот как я использую ActiveRecord вне Rails:

#!/usr/bin/ruby

require 'active_record'
require 'mysql2' # or 'pg' or 'sqlite3'

ActiveRecord::Base.establish_connection(
  adapter:  'mysql2', # or 'postgresql' or 'sqlite3'
  database: 'DB_NAME',
  username: 'DB_USER',
  password: 'DB_PASS',
  host:     'localhost'
)

# Note that the corresponding table is 'orders'
class Order < ActiveRecord::Base
end

Order.all.each do |o|
  puts "o: #{o.inspect}"
end
person Paweł Gościcki    schedule 07.09.2010
comment
Вам нужно указать mysql2 в качестве адаптера, а не mysql (для гуглеров). - person Damien Roche; 14.11.2012
comment
Вам также понадобится libmysqlclient-dev на Ubuntu (и, возможно, на других платформах) - person Ben West; 15.05.2013
comment
@BenWest Какая польза от libmysqlclient-dev? (прошу прощения за отсутствие базовых знаний по этому вопросу) - person Renan; 26.09.2013
comment
@Renan, поскольку ruby ​​gem компилирует некоторые из своих зависимостей, ему требуются заголовки разработки для библиотек, на которые ссылаются его зависимости. cprogramming.com/compilingandlinking.html - person Ben West; 27.09.2013
comment
Я бы хотел, чтобы люди не ссылались напрямую на имена пакетов Ubuntu/Debian. Их соглашение об именах в лучшем случае странное, и это приводит к запутанным ответам, за которые голосуют, что в конечном итоге не помогает людям искать. - person Tim; 14.01.2014
comment
Настоятельно рекомендуется настроить часовой пояс, иначе вы получите множество неясных проблем, связанных с часовым поясом. ::Time.zone = 'UTC'; ::ActiveRecord::Base.default_timezone = :utc - person Nigel Sheridan-Smith; 11.07.2014

person    schedule
comment
Ruby 1.9 предполагает require 'rubygems'. - person onebree; 02.09.2015