Errore SQLite3 durante il test delle autorizzazioni Cancan in Rails3:Nessuna tabella:abilità:ELIMINA DA “abilità” DOVE 1=1
-
25-09-2019 - |
Domanda
Riscontro problemi durante l'esecuzione dei test predefiniti in Rails3 beta4 con Cancan (http://github.com/ryanb/cancan).I test sono quelli semplici e generati automaticamente che assomigliano
Test "La verità" afferma True End
Ogni singolo test (sia unitario che funzionale) restituisce il seguente errore:
ActiveRecord::Istruzione non valida:SQLite3::SQLException:Nessuna tabella:abilità:ELIMINA DA "abilità" DOVE 1=1
Ciò accade anche se un uso e un'abilità sono definiti in test_helpers.rb
Presumo che ciò sia dovuto al modello di abilità che Cancan utilizza per l'autorizzazione poiché non è persistente (solo una semplice classe Ruby) e quindi non ha una tabella nel DB.Forse qualcosa sta cercando di eliminare le abilità dopo i test e tenta erroneamente di eliminare le abilità dal database?Come posso verificarlo (e, cosa più importante, risolverlo)?
Ancora una volta, non esiste una logica personalizzata nei test:sono generati da Rails3 beta4.
(Per tua informazione, la classe Ability non eredita da ActiveRecord::Base e include CanCan::Ability.Inoltre, l'app, l'autorizzazione e tutto, funziona bene.)
Ambiente:- Ruby 1.8.7 -P249 - Rails 3.0.0.beta4 - Cancan 1.2.0 - Delazioni 1.1.rc2
Qualcun altro si imbatte in questo problema?
Grazie per l'aiuto !
AGGIORNAMENTO:ho provato a passare a PostgreSQL.Evidentemente l'errore è indipendente dal DB:ho ricevuto il seguente errore durante l'esecuzione del "rake test"
ActiveRecord::Istruzione non valida:Errore PGErrore:ERRORE:La relazione "Abilità" non esiste la riga 1:Elimina dalle "abilità" ^:ELIMINA DA "abilità"
Soluzione
Problema risolto:Avevo un file di fixture skills.yml.Dopo averlo eliminato, l'errore è scomparso.