has_many belongs_to 关联问题

has_many belongs_to assocation issue

我有两个模型:UniversityMarket

一个大学属于一个Market,一个Market可以有很多所大学。例如,像波士顿这样的市场实例可能有麻省理工学院、哈佛大学、波士顿大学等大学实例。

我希望能够在控制台中执行类似的操作:

University.first.market.name

但我收到以下错误:

NoMethodError: undefined method `market' for #

我可以从 University.first.market_id 获得市场 ID,但我无法从 market.name 获得名称。

以下是我设置模型的方式:

class University < ApplicationRecord
belongs_to :markets

class Market < ApplicationRecord
has_many :universities
end

这是我的架构 - 我认为 market_id 整数列和索引已正确实施 (?)

  create_table "universities", force: :cascade do |t|
    t.string   "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string   "full_name"
    t.integer  "market_id"
    t.index ["market_id"], name: "index_universities_on_market_id"
end

这是我的市场架构:

  create_table "markets", force: :cascade do |t|
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string   "name"
  end

我做错了什么?

在一对多关系中,"belongs_to"结尾必须是单数,如下:

class University < ApplicationRecord
  belongs_to :market
end

class Market < ApplicationRecord
  has_many :universities
end

如果有帮助请告诉我