これは非常に基本的な質問のように思えますが、インターネットのどこにもその方法に関する説明が見つかりませんでした。多くの人がこの問題を抱えていると思います。
私は3つのモデルを持っています:Exercise、Workout、およびworkout_exercise (結合テーブル)
私の結合テーブルには、実行するセット数や繰り返し回数など、各エクササイズに関連付けられた追加の列があります。したがって、私のworkout_exercises
テーブルは次のようになります。
t.integer "workout_id"
t.integer "exercise_id"
t.integer "repetitions"
t.integer "set"
t.integer "rest"
ワークアウトにエクササイズを追加できます。ワークアウト ショー ビューには、各エクササイズに関連付けられたエクササイズのリストがあります。
ワークアウト ショー ビューで各エクササイズのセット数、繰り返し数、休憩を表示する方法がわかりません。
私のモデルのコードは次のとおりです。
class Exercise < ActiveRecord::Base
attr_accessible :name, :description, :photo, :video
has_many :workout_exercises
has_many :workouts, :through => :workout_exercises
end
class Workout < ActiveRecord::Base
attr_accessible :name
has_many :workout_exercises
has_many :exercises, :through => :workout_exercises
end
class WorkoutExercise < ActiveRecord::Base
attr_accessible :exercise_id, :repetitions, :rest, :set, :workout_id
belongs_to :exercise
belongs_to :workout
end
そして、私のworkouts_controllerには
class WorkoutsController < ApplicationController
before_filter :get_workouts, :only => [:show, :edit, :update, :destroy]
before_filter :get_exercises, :only => [:show]
def get_exercises
@workout_exercise = @workout.exercises
end
def get_workouts
@workout = Workout.find(params[:id])
end
最後に、ワークアウト ショー ビューに次のフォームがあります。
<% @workout_exercise.each do |exercise| %>
<%= exercise.name %>
<% end %>
助けてくれてありがとう!