0

has_many のワークアウトがあるトレーニング ウィークがあります。各ワークアウトには多くのエクササイズがあります。トレーニング ウィークのクラスで、トレーニング ウィークにあるすべてのエクササイズを教えてくれるメソッドを書こうとしています。

私はレールを使用しています。究極は、私が 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 に答える