我有一个Player
模型,谁has_many :positions
。把玩家想象成有人在运动,他们可以在场上打多个位置(即前锋,左翼,防守中场)。如何构建我的Position模型和我的Player模型之间的关系?
我不能完全弄清楚如何从数据库的角度对此进行建模。
起初我Position.rb
是这样的:
# == Schema Information
#
# Table name: positions
#
# id :integer not null, primary key
# position_type :integer
# player_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Position < ActiveRecord::Base
belongs_to :player
enum position_type: { goalkeeper: 0, center_back: 1, left_back: 2, right_back: 3, left_wing_back: 4, right_wing_back: 5, defending_midfielder: 6, central_midfielder: 7, attacking_midfielder: 8, left_midfield: 9, right_midfield: 10, left_wing: 11, right_wing: 12, center_forward: 13 }
end
但是,这感觉错了。
我应该像做一个普通的Position
模型一样,然后为每个职位创建独特的记录,然后在两者之间建立一个HABTM关系?
这是HABTM适合的情况吗?我有一段时间没有使用过这种关系。