0

我有一个训练周,有很多训练。每个锻炼都有_many 练习。我正在尝试在训练周课程上编写一个方法,告诉我训练周中的所有练习。

我正在使用 Rails。最终将能够像我做 Workout.exercises 一样做像 TrainingWeek.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"
    }
]
4

2 回答 2

2

将此关联添加到您的TrainingWeek模型:

has_many :exercises, :through => :workouts, :uniq => true

然后你可以这样做:

@some_training_week.exercises
于 2013-11-12T00:17:41.137 回答
0

这个怎么样:

@training_week = TrainingWeek.find(...)

@schedule_hash = { "exercise" => @training_week.workouts.inject(Array.new) { |workout, array| array << { "name" => workout.name }; array } }

此时,@schedule_hash应该接近你想要的了。我还没有测试过,但这应该非常接近。

于 2013-11-12T00:13:44.413 回答