这似乎是一个非常基本的问题,但我在互联网上的任何地方都没有找到关于如何做到这一点的解释,我想很多人都有这个问题。
我有三个模型:运动、锻炼和锻炼_锻炼(连接表)
在我的连接表中,我有与每个练习相关的额外列,例如要执行的组数和重复次数。所以我的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
在我的锻炼控制器中,我有
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 %>
谢谢您的帮助!