这里的Rails新手。我正在尝试创建一个应用程序来显示有关足球比赛的信息。我有一个Game
模型,用于包含有关匹配的信息。我希望在game
对象中包含的一种信息是匹配中发生的事件,例如目标和纪律处分。
class Game < ApplicationRecord
has_many :events
end
对这些事件进行建模的最佳方法是什么?应该只有一个Event
模型,还是创建扩展Event
的多个模型有任何优势,例如Goal
,YellowCard
,RedCard
等?< / p>
答案 0 :(得分:1)
您可以使用类似EventType模型的内容:
# game.rb
class Game < ApplicationRecord
has_many :events
end
# event.rb
class Event < ApplicationRecord
belongs_to :event_type
end
# event_type.rb
class EventType < ApplicationRecord
end
在events
表中,您可以存储时间/备注等信息,并且会有一个字段event_type_id
。在event_types
表中,您可以存储目标,yellow_card等操作。
然后,您可以轻松地进行查询,例如在特定比赛中查找所有目标等。
答案 1 :(得分:-1)
一个让你入门的建议。
class Game < ActiveRecord::Base
has_many :teams
has_many :players, through: :teams
has_many :goals
has_many :cards
end
class Team < ActiveRecord::Base
has_many :players
end
class Player < ActiveRecord::Base
belongs_to :team
has_many :cards
has_many :goals
end
class Card < ActiveRecord::Base
belongs_to :player
belongs_to :game
end
class Goal < ActiveRecord::Base
belongs_to :player
belongs_to :game
end
* obs:您可能想要添加TeamLineup模型,因为团队可以根据游戏拥有不同的阵容。我知道你问了一些事件,但我认为上面提出的解决方案,更好地模拟足球比赛