Ich kann Fixtures für meine Tabelle, die STI verwendet, nicht laden.Rails: kann Fixtures für Tabelle nicht mit STI laden (undefinierte Methode `reflect_on_all_associations ')
Als ich FIXTURES=schools rake db:fixtures:load
nennen, ich diesen Fehler:
undefined method `reflect_on_all_associations' for Object:Class
- Andere Anlagen laden fein, dh
FIXTURES=committes rake db:fixtures:load
- Die Befestigung durch den Aufruf
rake db:fixtures:extract
erstellt wurde Hier Migration meine Schulen :
Ich habe ein paar Modelldateien, dh school.rb
:
class School < ActiveRecord::Base
end
Und secondary_school.rb
:
class SecondarySchool < School
end
Hier ist der Stack-Trace:
undefined method `reflect_on_all_associations' for Object:Class
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:597:in `insert_fixtures'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:568:in `each'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:568:in `insert_fixtures'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:512:in `create_fixtures'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:512:in `each'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:512:in `create_fixtures'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:510:in `create_fixtures'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/connection_adapters/mysql_adapter.rb:267:in `disable_referential_integrity'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:501:in `create_fixtures'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/base.rb:1482:in `silence'
/home/loranaw/ruby/gems/gems/activerecord-2.3.10/lib/active_record/fixtures.rb:500:in `create_fixtures'
/home/loranaw/ruby/gems/gems/rails-2.3.10/lib/tasks/databases.rake:223
/home/loranaw/ruby/gems/gems/rails-2.3.10/lib/tasks/databases.rake:222:in `each'
/home/loranaw/ruby/gems/gems/rails-2.3.10/lib/tasks/databases.rake:222
Und einige Beispiel YML:
---
schools_7133:
city: Nahanni Butte
name: Charles Yohin School
created_at: 2010-11-26 02:36:39
grade_range: K-10
latitude: "61.03349"
country: CA
updated_at: 0000-00-00 00:00:00
postal_code: "X0E 0N0"
url:
street: ""
id: "9682"
type: SecondarySchool
fax: (867) 602-2202
phone: (867) 602-2200
funding:
longitude: "-123.38642"
school_type:
province: NT
email:
Ich verwende STI. Typ wird verwendet, um SecondarySchool, PrimarySchool usw. zu speichern. –
Erhalten Sie immer noch den Fehler, auch wenn Sie den Typ umbenennen, um "school_type" zu sagen? Das Schlüsselwort "type" ist geschützt und hat Programmierer schon während der direkten Aktualisierung mit der update_attribute-Methode wirklich diskriminiert. Also schlage ich vor, dass Sie es umbenennen, anstatt es irgendwie zu umgehen. – Raghu
Wenn Sie mich nicht verstanden haben, was ich eigentlich sagen möchte, ist in Ihrer Schienenmigration, wo Sie die Schulen erstellen, sollten Sie t.string: type in t.string: school_type umbenennen. Hoffe, dies sollte die Dinge klarstellen – Raghu