Я пытаюсь наладить свои отношения, но у меня возникают проблемы с использованием ассоциаций.
Итак, у меня есть три модели Workout
, Exercise
и WorkoutExercise
. В тренировке должно быть много упражнений, а в упражнении должны быть разные тренировки, поэтому я написал:
class Workout < ActiveRecord::Base
has_many :workout_exercises
has_many :exercises, :through => :workout_exercises
end
class Exercise < ActiveRecord::Base
has_many :workout_exercises
has_many :workouts, :through => :workout_exercises
end
class WorkoutExercise < ActiveRecord::Base
belongs_to :exercise
belongs_to :workout
end
Я выполняю некоторые тесты, но тесты не проходят, когда я создаю тренировку, выполняю упражнение и затем присоединяю их к классу workout_exercise. Это не позволит мне получить доступ к упражнениям во время тренировки следующим образом:
Workout.create
Exercise.create
WorkoutExercise.create(:workout => Workout.first, :exercise => Exercise.first)
work = Workout.first
work.exercises.count #This line causes the error: undefined method exercises
Мои таблицы базы данных выглядят так:
class CreateWorkouts < ActiveRecord::Migration
def change
create_table :workouts do |t|
t.string :title
t.text :description
t.float :score
t.timestamps
end
end
end
class CreateExercises < ActiveRecord::Migration
def change
create_table :exercises do |t|
t.string :title
t.text :description
t.float :value
t.timestamps
end
end
end
class CreateWorkoutExercises < ActiveRecord::Migration
def change
create_table :workout_exercises do |t|
t.timestamps
end
end
end
Когда я запускаю этот тест, он говорит, что exercises
не определено. У кого-нибудь есть какие-либо идеи?