Pracowałem nad aplikacją Rails 4.0 z sqlite (domyślnie dla Railsów środowisko programistyczne) dla zdarzeń (hackathonów), które mają model macierzysty, Event, dla którego może istnieć wiele Press_Blurbs.Rails 4: schema.db pokazuje zdarzenia "Nie można zrzucić tabeli" "z powodu następującego NoMethodError # niezdefiniowanej metody` [] 'dla zer: NilClass "
Pierwszy wpadłem kilka generatorów rusztowania, które stworzyły pewne migracje że wpadłem pozornie bez emisji:
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
Potem dodano kilka relacji do modeli:
class Event < ActiveRecord::Base
has_many :press_blurbs
end
class PressBlurb < ActiveRecord::Base
belongs_to :event
end
... i dodał/prowadził migracji, aby dodać odniesienie tabeli:
class AddEventRefToPressBlurbs < ActiveRecord::Migration
def change
add_column :press_blurbs, :event, :reference
end
end
niemniej jednak, kiedy patrzę w schema.db to co widzę zamiast definicji tabel:
# 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
Inne niepowiązane tabele pokazują się w schema.rb perfekcyjnie, ale to nie. Masz pojęcie, co się dzieje?
Po uruchomieniu 'rake db: migrate' wykonuje aktualizację schematu? –
Nie. :(Plik pozostaje taki sam jak numer wersji – huertanix