0

これは非常に基本的な質問のように思えますが、インターネットのどこにもその方法に関する説明が見つかりませんでした。多くの人がこの問題を抱えていると思います。

私は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 %>

助けてくれてありがとう!

4

2 に答える 2

3

探しているフィールドはworkout_exercisesテーブルにあります。

workouts_controller

def get_exercises
    @workout_exercise = @workout.workout_exercises
end

ビューでは、次のように情報を一覧表示できます。演習の名前は引き続き表示されますがexercise、それぞれworkout_exerciseexercise

<% @workout_exercise.each do |w| %>
    Name: <%= w.exercise.name %>
    Set: <%= w.set %>
    Reps: <%= w.repetitions %>
    Rest: <%= w.rest %>
<% end %>

編集 - ワークアウト_コントローラー ##@workout_exerciseでインスタンス化されていることを確認してshowください:

def show
    @workout = Workout.find(params[:id])
    @workout_exercise = @workout.workout_exercises
end
Explainz の github

https://github.com/twairball/workoutapp

于 2013-04-10T15:34:12.700 に答える