2016-06-02 13 views
0

Ich verwende Rails 4.2.3 mit einer PostGre-Datenbank. Ich habe diese Datei, die als Teil meiner fuehrt wird „rake db: seed“ BefehlKann nicht herausfinden, warum meine Seed-Datei Zeilen ohne Daten erstellt

Country.delete_all 
Country.connection.execute("ALTER SEQUENCE countries_id_seq RESTART WITH 1") 
Country.create(:id=>1,:iso=>"AD",:name=>"Andorra") 
Country.create(:id=>2,:iso=>"AE",:name=>"United Arab Emirates") 
Country.create(:id=>3,:iso=>"AF",:name=>"Afghanistan") 
Country.create(:id=>4,:iso=>"AG",:name=>"Antigua and Barbuda") 
Country.create(:id=>5,:iso=>"AI",:name=>"Anguilla") 
Country.create(:id=>6,:iso=>"AL",:name=>"Albania") 
… 

Hier ist die Tabelle beschrieben ...

\d countries; 
           Table "public.countries" 
Column |  Type  |      Modifiers       
--------+-------------------+-------------------------------------------------------- 
id  | integer   | not null default nextval('countries_id_seq'::regclass) 
iso | character varying | 
name | character varying | 
Indexes: 
    "countries_pkey" PRIMARY KEY, btree (id) 

jedoch nach der obigen Datei ausgeführt wird, eine Reihe von Zeilen erhalten erstellt, aber die ISO- und Namensfelder sind leer. Hier ist meine app/Modell/country.rb Datei

class Country < ActiveRecord::Base 
    attr_accessor :id, :iso, :name 
end 

Danke für Ihre Hilfe, - Dave

Antwort

0

Sie sollten die attr_accessor Linie vollständig entfernen. ActiveRecord definiert diese Methoden basierend auf den Tabellenspalten für Sie. Wenn Sie diese Zeile verwenden, überschreiben Sie im Wesentlichen die integrierten ActiveRecord-Methoden mit Versionen, die die Datenbank nicht berühren.