Próbuję wejść w interakcję z plikiem .sqlite, łącząc się z nim za pomocą rekordu aktywnego. Robię to:Aktywny rekord błąd set_table_name dla pliku .sqlite
require 'active_record'
# Connect to DB
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => 'database.sqlite')
# Log the tables to make sure Active Record is connected to the DB correclty
puts ActiveRecord::Base.connection.tables
# Map from existing table records to a Active Record model
class Patient < ActiveRecord::Base
set_table_name "ZPATIENT"
end
Połączenie z bazą danych działa jak drukowanie tabel baz danych daje:
ZPATIENT
ZZCONFIG
Z_PRIMARYKEY
Z_METADATA
Ale próba map ZPATIENT
tabeli Patient Całość modele Record powiedzie się z:
~/.rvm/gems/ruby-1.9.3-p448/gems/activerecord-4.0.0/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `set_table_name' for Patient(Table doesn't exist):Class (NoMethodError)
from script.rb:8:in `<class:Patient>'
from script.rb:7:in `<main>'
Nie jestem pewien, co robię źle? Czy muszę wykonać jakąś migrację do Active Record, aby zrozumieć, jak zmapować tabelę do modeli?
Może to głupie, ale czy wypróbowałeś 'self.table_name' zamiast' set_table_name' ?? – NicoSantangelo