Это старый демонстрационный способ использования Active Record и не очень полезный для производства. Это поможет вам начать. Мой код будет создавать соединения без необходимости использования sqlite3. Я думаю, что Active Record будет включать его, если вы используете запись хэша адаптера:. Конечно, вам нужно, чтобы он был установлен, но он не нужен в вашем коде для Active Record. Просто попробуйте, чтобы этого не требовалось. Тогда, если вы все еще сомневаетесь, удалите жемчужину просто для удовольствия. Есть больше пространств имен и меток Active Record, которые вы должны попробовать, особенно тех, которые проверяют, существует ли база данных. Затем пропустите создание одного. Вот пример кода из книги Метапрограммирование Рубина.
#---
# Excerpted from "Metaprogramming Ruby",
# published by The Pragmatic Bookshelf.
# Copyrights apply to this code. It may not be used to create training material,
# courses, books, articles, and the like. Contact us if you are in doubt.
# We make no guarantees that this code is fit for any purpose.
# Visit http://www.pragmaticprogrammer.com/titles/ppmetr2 for more book information.
#---
# Create a new database each time
File.delete 'dbfile' if File.exist? 'dbfile'
require 'active_record'
ActiveRecord::Base.establish_connection :adapter => "sqlite3",
:database => "dbfile.sqlite3"
# Initialize the database schema
ActiveRecord::Base.connection.create_table :ducks do |t|
t.string :name
end
class Duck < ActiveRecord::Base
validate do
errors.add(:base, "Illegal duck name.") unless name[0] == 'D'
end
end
my_duck = Duck.new
my_duck.name = "Donald"
my_duck.valid? # => true
my_duck.save!
require_relative '../test/assertions'
assert my_duck.valid?
bad_duck = Duck.new(:name => "Ronald")
assert !bad_duck.valid?
duck_from_database = Duck.first
duck_from_database.name # => "Donald"
assert_equals "Donald", duck_from_database.name
duck_from_database.delete
File.delete 'dbfile' if File.exist? 'dbfile'
Этот код удаляет файл db после использования, и это тоже не очень хорошая настойчивость. Но вы понимаете, что это просто для тестирования утверждений. Вы можете попробовать это, чтобы убедиться, что вы меняете весы.
Вы хотите оставить код? https://pragprog.com/book/ppmetr/metaprogramming-ruby
Я обучаю вас или я подобен? Модераторы удаляют это, если я ошибаюсь здесь, пожалуйста. Я не хочу приводить плохой пример.
JFI - это код приложения для рельсов или рубин, просто интересно, если он рубин, где требуется «sqlite3», он может его увидеть – Viren