Ich habe an einer Rails 4.0 Anwendung mit sqlite (Standard für Rails Entwicklungsumgebung) für Ereignisse (Hackathons) mit einem übergeordneten Modell, Event, für das es viele Press_Blurbs geben kann.Rails 4: schema.db zeigt "Konnte nicht dump Tabelle" Ereignisse "wegen der folgenden NoMethodError # undefined Methode` [] 'für nil: NilClass "
Zuerst lief ich einige Gerüste Generatoren, die einige Migrationen geschaffen, die ich ohne Problem scheinbar lief:
class Event < ActiveRecord::Base
has_many :press_blurbs
end
class PressBlurb < ActiveRecord::Base
belongs_to :event
end
... und hinzugefügt /:
class CreateEvents < ActiveRecord::Migration
def change
create_table :events do |t|
t.string :city
t.string :theme
t.datetime :hackathon_start
t.datetime :hackathon_end
t.datetime :show_start
t.datetime :show_end
t.text :about
t.string :hack_rsvp_url
t.string :show_rsvp_url
t.timestamps
end
end
end
class CreatePressBlurbs < ActiveRecord::Migration
def change
create_table :press_blurbs do |t|
t.string :headline
t.string :source_name
t.string :source_url
t.string :logo_uri
t.timestamps
end
end
end
Dann einige Beziehungen zu den Modellen, die ich hinzugefügt hat eine Migration ausgeführt, um einen Tabellenverweis hinzuzufügen:
class AddEventRefToPressBlurbs < ActiveRecord::Migration
def change
add_column :press_blurbs, :event, :reference
end
end
Trotzdem, wenn ich schaue bei schema.db ist das, was ich anstelle von Tabellen Definitionen siehe:
# Could not dump table "events" because of following NoMethodError
# undefined method `[]' for nil:NilClass
# Could not dump table "press_blurbs" because of following NoMethodError
# undefined method `[]' for nil:NilClass
Andere unabhängige Tabellen in schema.rb zeigen sich völlig in Ordnung, aber diese nicht. Irgendeine Idee was ist los?
Wenn Sie 'rake db: migrate 'ausführen, wird das Schema aktualisiert? –
Nein. :(Die Datei bleibt die gleiche wie die Versionsnummer. – huertanix