A workout
has_many movements
。Rails 4 dynamic has_many
一個result
belongs_to的一個user
,workout
和可選modified_workout
result
型號:
belongs_to :user
belongs_to :workout
has_many :movements, through: :workout
belongs_to :modified_workout, class_name: "Workout"
現在我user
型號:
has_many :workouts, through: :results
has_many :movements, through: :workouts
不過,我想結合modified_workout
進入user
的has_many :movements
。如果存在modified_workout
關係,我只想返回那些movements
即belong_to
的modified_workout
。 Movements
即belong_to
workout
應該不是被退回。如果modified_workout
關係不存在(即,modified_workout_id
列是null
),則返回movements
,其屬於workout
。
喜歡的東西
has_many :movements ->
if modified_workout
return modified_workout.movements
else
return workout.movements
,但作爲對belong_to
是user
所有results
運行的scope
。
這是什麼讓鍛鍊得到修改?常規和修改之間的數據庫列是什麼? –
或者結果是否有兩個鍵? 'modified_workout_id'和'workout_id',兩者都指向'Workout'表格? –
@LannyBose結果有兩個鍵,都指向鍛鍊表。 'workout_id'不能爲null,'modified_workout_id'可以爲null。 –