我试图为current_user收集一组数据,所以在我的控制器代码中我有:
@user_workouts = current_user.planned_workouts
将planned_workouts作为用户和锻炼的连接表。当我在控制台中测试时:
@user_workouts.count
我得到了4.
当我这样做时:
PlannedWorkout.count
我得到了4.
但是当我尝试为我的@user_workouts使用.each循环时:
@user_workouts.each do |user_workout|
puts user_workout
end
我得到的远远超过4,我得到了类似~25的东西,当我在上面测试了表中有多少plan_workout以及用户自己时,这怎么可能?我还尝试删除所有plans_workouts,以便表格为空并创建4个新表格,但仍然是相同的结果。它可以与我在模式中使用add_index的事实有关吗?
编辑:
我的模特协会:
User.rb
has_many :planned_workouts
has_many :workouts, through: :planned_workouts
Workout.rb
has_many :planned_workouts
has_many :users, through: :planned_workouts
PlannedWorkout.rb
belongs_to :workout
belongs_to :user