麻烦在ActiveRecord中建立一个体育联盟

时间:2015-03-16 17:44:41

标签: ruby-on-rails ruby activerecord

首次使用Active Record。我正在建立一个小型在线模拟游戏,我有自由球员,球员,球队,赛季和季后赛时间表。玩家应该从一个团队转移到另一个团队并且"竞争"互相攻击。当我尝试将所有这些类链接在一起时,我遇到的问题是回溯错误。这是我目前的结构:

架构:

create_table "games", force: :cascade do |t|
  t.integer "visiting_team"
  t.integer "home_team"
  t.integer "visiting_score"
  t.integer "home_score"
  t.integer "winner"
end

create_table "league", force: :cascade do |t|
  t.string "schedule"
  t.string "teams"
  t.string "players"
end

create_table "players", force: :cascade do |t|
  t.string   "name"
  t.string   "position"
  t.integer  "rating"
  t.integer  "age"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.integer  "team_id"
  t.boolean  "free_agent"
end

create_table "schedules", force: :cascade do |t|
  t.integer "game"
end

create_table "teams", force: :cascade do |t|
  t.string   "name"
  t.string   "location"
  t.integer  "wins"
  t.integer  "losses"
  t.integer  "rating"
  t.datetime "created_at"
  t.datetime "updated_at"
end

以下是关系:

class Team < ActiveRecord::Base
  has_many(:players)
  has_many(:games)
  belongs_to(:league)
end

class Schedule < ActiveRecord::Base
  has_many(:games)
  belongs_to(:league)
end

class Player < ActiveRecord::Base
  belongs_to(:team)
  has_many(:games)
  belongs_to(:league)
end

class League < ActiveRecord::Base
  has_one(:schedule)
  has_many(:teams)
  has_many(:players)
end

class Game < ActiveRecord::Base
  belongs_to(:teams)
  belongs_to(:players)
  belongs_to(:schedules)
end

问题:我是否需要在联盟和球员/球队之间添加外键关系?文档说没有,但我不明白玩家如何在没有引用主键/外键的情况下属于联盟。另外,我不确定如何构建计划类。我不确定哪些属性有意义。我希望每个团队能够在许多游戏中竞争,并且能够为每个团队生成计划。我是一个新手,所以即使为活跃的记录指出了很好的资源(除了我读过的文档,虽然没有完全理解)也会非常有帮助。谢谢!

0 个答案:

没有答案