我有一个训练周,有很多训练。每个锻炼都有很多练习。我试着在训练周课上写一个方法,告诉我训练周的所有练习。
我正在使用Rails。最终的目标是能够像TrainingWeek.exercises一样简单,就像我可以做Workout.exercises一样。
有什么想法吗?我的最终目标是得到一个像这样的json输出:
"exercise": [
{
"name": "Bench Dips 1"
},
{
"name": "Hanging Leg Raises 1"
},
{
"name": "Bench Press 0"
},
{
"name": "Bicep Curls 0"
},
{
"name": "Lat Pulldowns 1"
},
{
"name": "Bench Dips 0"
}
]
答案 0 :(得分:2)
将此关联添加到您的TrainingWeek
模型中:
has_many :exercises, :through => :workouts, :uniq => true
然后你可以这样做:
@some_training_week.exercises
答案 1 :(得分:0)
这个怎么样:
@training_week = TrainingWeek.find(...)
@schedule_hash = { "exercise" => @training_week.workouts.inject(Array.new) { |workout, array| array << { "name" => workout.name }; array } }
此时,@schedule_hash
应该接近你想要的。我没有测试过这个,但那应该非常接近。