has_many belongs_to 关联问题
has_many belongs_to assocation issue
我有两个模型:University
和 Market
一个大学属于一个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
如果有帮助请告诉我
我有两个模型:University
和 Market
一个大学属于一个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
如果有帮助请告诉我