通过连接表在rails中的3路可选关系

时间:2015-09-17 20:12:05

标签: ruby-on-rails ruby activerecord

我正在努力解决我需要实施的联接表。

我有三个模型,FitnessProgram,Workout和Phase。

FitnessPrograms可以有许多不属于某个阶段的锻炼,或者有很多阶段(即第1周)有很多锻炼。

所以阶段是可选的,我使用名为FitnessProgramWorkouts的连接表连接三个模型

FitnessProgramWorkouts
  belongs_to :fitness_program
  belongs_to :workout
  belongs_to :phase
FitnessProgram
  has_many :fitness_program_workouts
  has_many :phases, through: :fitness_program_workouts
  has_many :workouts, through: :fitness_program_workouts
Phase
  has_many :fitness_program_workouts
  has_one  :program, through: :fitness_program_workouts
  has_many :workouts, through: :fitness_program_workouts
Workouts
  has_many :fitness_program_workouts
  has_one  :program, through: :fitness_program_workouts
  has_many :phases, through: :fitness_program_workouts

这是对的吗?

0 个答案:

没有答案