Bonjour,
dans mon application, je remplie ma base à partir d'un fichier XML avec
Hpricot.
une fois l' objet fichier sauvegardé en base, je crée pas mal d'objets,
dont des connections.

Les connections edge ont les relations suivantes :

class Connection < ActiveRecord::Base
 [...]
 has_many :connection_edges

class ConnectionEdge < ActiveRecord::Base
  belongs_to :aspen_topo_file
  belongs_to :device
  belongs_to :connection
  belongs_to :usr_port, :class_name => "Port", :foreign_key =>
"usr_port_id"
  belongs_to :ntw_port, :class_name => "Port", :foreign_key =>
"ntw_port_id"
  belongs_to :main_vl2si, :class_name => "Device", :foreign_key =>
"main_vl2si_id"
  belongs_to :alter_vl2si, :class_name => "Device", :foreign_key =>
"alter_vl2si_id"
  belongs_to :protection_ntw_port, :class_name => "Port", :foreign_key
=> "protection_ntw_port_id"

  has_many :paths
end

Une fois récupéré les attributs de mon connection_edge, je le sauve :
@connection =
Connection.find_by_id_and_topo_file_id(connection.attributes["ConnectionID"].to_i,@topo_file.id)
new_conn_edge = ConnectionEdge.new
new_conn_edge.connection = @connection
[.. récupératon des autres attributs via XML]
#Sauvegarde
if new_conn_edge.save
                  logger.info(format_date_log(Time.now) +"
L'extremité de la connexion " + new_conn_edge.connection.description + "
[" + new_conn_edge.connection.id.to_s + "]"  + " sur l'équipement + " +
new_conn_edge.device.name + " [" + new_conn_edge.device.id.to_s + "]" +
"a été créé")

j'ai bien vérifié que les valeurs mises dans l'objet étaient bonnes mais
lorsque rails tente de sauvegarder l'objet,
le code me renvoie  l'erreur suivante :

 NoMethodError in  topo filesController#create

undefined method `prefetch_primary_key?' for
#<Connection:0x7f8c09ca5778>

RAILS_ROOT: /home/sylvain/NetBeansProjects/Topo2Db
Application Trace | Framework Trace | Full Trace

/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/attribute_methods.rb:251:in
`method_missing'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_proxy.rb:177:in
`send'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/associations/association_proxy.rb:177:in
`method_missing'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2492:in
`create_without_callbacks'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/callbacks.rb:220:in
`create_without_timestamps'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/timestamp.rb:29:in
`create'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2472:in
`create_or_update_without_callbacks'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/callbacks.rb:207:in
`create_or_update'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/base.rb:2200:in
`save_without_validation'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/validations.rb:901:in
`save_without_dirty'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/dirty.rb:75:in
`save_without_transactions'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:106:in
`save'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:66:in
`transaction'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:79:in
`transaction'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:98:in
`transaction'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:106:in
`save'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:118:in
`rollback_active_record_state!'
/usr/lib64/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:106:in
`save'
app/controllers/topo_files_controller.rb:850:in `create'
app/controllers/topo_files_controller.rb:643:in `each'
app/controllers/topo_files_controller.rb:643:in `create'
app/controllers/topo_files_controller.rb:638:in `each'
app/controllers/topo_files_controller.rb:638:in `create'
app/controllers/topo_files_controller.rb:71:in `create'

Sachant que j'ai déjà créé des objets avec d'autres en référence (pas
par rapport aux connections certes), j'arrive pas à voir mon erreur...

Vous auriez une idée ?

Merci d'avance
-- 
Posted via http://www.ruby-forum.com/.

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à