J'essaie d'interagir avec un fichier .sqlite en me connectant avec Active Record. Je fais ceci:Active Record nom_table_table_name pour le fichier .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
La connexion à la base de données fonctionne comme l'impression sur les tables de base de données donne:
ZPATIENT
ZZCONFIG
Z_PRIMARYKEY
Z_METADATA
Mais la tentative de la carte ZPATIENT
table Patient modèles Active Record échoue avec:
~/.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>'
Vous ne savez pas ce que je fais mal? Ai-je besoin de faire une sorte de migration pour Active Record pour comprendre comment mapper la table aux modèles?
Peut-être que c'est stupide, mais avez-vous essayé 'self.table_name' au lieu de' set_table_name' ?? – NicoSantangelo