Port.find_all_by_subsystem_id(@subsystem.id).each do |p|
logger.info("*** porta #{p.id}")
p.destroy
end
ma ottengo il seguente errore:
NoMethodError: undefined method position' for #<Port:0xb7b008bc> from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1792:inmethod_missing’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/acts/list.rb:155:in send' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/acts/list.rb:155:inin_list?’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/acts/list.rb:117:in remove_from_list' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:344:insend’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:344:in callback' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:ineach’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:in callback' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:333:indestroy_without_transactions’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:122:in destroy' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/database_statements.rb:51:intransaction’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:91:in transaction' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:118:intransaction’
from
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:122:in destroy' from (irb):2 from (irb):1:ineach’
from (irb):1>>
Nonostante il messaggio di errore il primo record e’ stato cancellato.
Premesso che la stessa query funziona su altre tabelle e che penso ci
sia un modo piu’ elegante e rubysh per eseguire lo stesso comando… non
capisco perche’ non funzioni. Avete qualche idea?
Grazie mille!
a occhio e croce sembra giusta, se ti cancella il primo record e se
funziona
negli altri suppongo che ci sia qualche problema nel db, hai controllato
che
non ci siano incoerenze nella tabella Port?
Saluti Andrea
----- Original Message -----
From: “Mike Schirru” [email protected]
To: [email protected]
Sent: Tuesday, January 30, 2007 10:49 AM
Subject: [ruby-it] Problema destroy
from
`remove_from_list’
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:in
from
from (irb):1>>
Posted via http://www.ruby-forum.com/.
Ho pensato anche io a questa ipotesi, perche’ ho modificato tramite SQL
il valore di un campo per tutti i record… pero’ questa operazione
dovrebbe essere trasparente per il modello ActiveRecord.
Dal log sembra che dopo la cancellazione cerchi di effettuare un
rollback forse proprio a causa di una inconsistenza:
Port Columns (0.003366) SHOW FIELDS FROM ports
Port Load (0.000432) SELECT * FROM ports WHERE (ports.subsystem_id
= 4 )
SQL (0.003651) BEGIN
Port Destroy (0.000185) DELETE FROM ports
WHERE id = 13
SQL (0.000053) ROLLBACK
NoMethodError (undefined method `position’ for #Port:0xb7a74da8):
stb wrote:
a occhio e croce sembra giusta, se ti cancella il primo record e se
funziona
negli altri suppongo che ci sia qualche problema nel db, hai controllato
che
non ci siano incoerenze nella tabella Port?
Saluti Andrea
----- Original Message -----
From: “Mike Schirru” [email protected]
To: [email protected]
Sent: Tuesday, January 30, 2007 10:49 AM
Subject: [ruby-it] Problema destroy
from
`remove_from_list’
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:in
from
from (irb):1>>
Posted via http://www.ruby-forum.com/.
Pare che il problema fosse dovuto alla definizione
acts_as_list :scope => :subsystem_id
nel modello della tabella Port.
Grazie comunque!
Mike Schirru wrote:
Ho pensato anche io a questa ipotesi, perche’ ho modificato tramite SQL
il valore di un campo per tutti i record… pero’ questa operazione
dovrebbe essere trasparente per il modello ActiveRecord.
Dal log sembra che dopo la cancellazione cerchi di effettuare un
rollback forse proprio a causa di una inconsistenza:
Port Columns (0.003366) SHOW FIELDS FROM ports
Port Load (0.000432) SELECT * FROM ports WHERE (ports.subsystem_id
= 4 )
SQL (0.003651) BEGIN
Port Destroy (0.000185) DELETE FROM ports
WHERE id = 13
SQL (0.000053) ROLLBACK
NoMethodError (undefined method `position’ for #Port:0xb7a74da8):
stb wrote:
a occhio e croce sembra giusta, se ti cancella il primo record e se
funziona
negli altri suppongo che ci sia qualche problema nel db, hai controllato
che
non ci siano incoerenze nella tabella Port?
Saluti Andrea
----- Original Message -----
From: “Mike Schirru” [email protected]
To: [email protected]
Sent: Tuesday, January 30, 2007 10:49 AM
Subject: [ruby-it] Problema destroy
from
`remove_from_list’
/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:in
from
from (irb):1>>
Posted via http://www.ruby-forum.com/.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.