Tôi đã làm việc trên một ứng dụng Rails 4.0 với sqlite (mặc định cho Rails môi trường phát triển) cho các sự kiện (hackathons) có một mô hình cha, Sự kiện, mà có thể có nhiều Press_Blurbs.Rails 4: schema.db cho thấy "Không thể đổ bảng" sự kiện "vì sau NoMethodError # undefined phương pháp` [] 'cho nil: NilClass "
Trước tiên tôi chạy một số máy phát điện giàn giáo mà tạo ra một số di cư có thể tôi chạy dường như không có vấn đề:
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
Sau đó, tôi đã thêm một số mối quan hệ với các mô hình:
class Event < ActiveRecord::Base
has_many :press_blurbs
end
class PressBlurb < ActiveRecord::Base
belongs_to :event
end
... và thêm/chạy di chuyển để thêm tham chiếu bảng:
class AddEventRefToPressBlurbs < ActiveRecord::Migration
def change
add_column :press_blurbs, :event, :reference
end
end
Tuy nhiên, khi tôi nhìn tại schema.db đây là những gì tôi thấy thay vì các định nghĩa bảng:
# 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
Các bảng không liên quan khác hiển thị trong giản đồ.rb hoàn toàn tốt, nhưng không có. Có ai biết cái gì đang xảy ra không?
Khi bạn chạy 'rake db: migrate' có cập nhật lược đồ không? –
Không. : (Các tập tin vẫn giữ nguyên như số phiên bản – huertanix