我从RubyonRails开始,我有两个模型:
城市和街道,
这两个模型是独立生成的,它们之间没有任何关系。现在我需要一个城市有许多街道,每个街道都属于一个城市。我运行了这个命令:
bin/rails generate migration AddCityRefToStreets city:references
产生这种迁移的原因:
class AddCityRefToStreets < ActiveRecord::Migration[5.2]
def change
add_reference :streets, :city, foreign_key: true
end
end
然后我跑了
bin/rails db:migrate
然后我进入这些模型类,写了:
class City < ApplicationRecord
has_many :streets, dependant: :destroy
end
和
class Street < ApplicationRecord
belongs_to :city
end
Rails没有显示出任何抱怨,到目前为止它对我来说工作得很好。如果我问
@city.streets.length
它将返回正确数量的街道
@city
. 如果我问
@street.city
它也返回正确的城市。
问题是,我使用dbeaver进入数据库,并且迁移没有在
cities
和
streets
桌子。这个
街道
表中显示了
city_id
字段,但在ER图表视图中仍不显示任何关系。
我的问题是:我在这里遗漏了什么?这是将独立创建的两个实体关联起来的正确方法吗?
我使用的是LinuxMint 18.3、Rails 5.2.1、SQLite 3.11.0和DBeaver 5.1。