Ruby on rails 为什么当前用户总是user\u id=1?

Ruby on rails 为什么当前用户总是user\u id=1?,ruby-on-rails,devise,Ruby On Rails,Devise,我不明白为什么当前用户总是设置为user\u id=1 当它编辑数据时,会适当地设置用户id,但当它创建新记录时,会将用户id设置为1 使用轨道3.1.3 w/装置 控制员: def update_multiple @user = current_user for @workoutdate in params[:workout_workoutdates] is_new = false #this part works, user_id ends up equaling the cur

我不明白为什么当前用户总是设置为user\u id=1

当它编辑数据时,会适当地设置用户id,但当它创建新记录时,会将用户id设置为1

使用轨道3.1.3 w/装置

控制员:

def update_multiple

@user = current_user
for @workoutdate in params[:workout_workoutdates]
  is_new = false

  #this part works, user_id ends up equaling the current_user

  @workouts = Workout.where(:user_id => @user, 
                            :workoutdate => @workoutdate.to_time)
  if !@workouts.any?

    # when setting user_id to an integer it works
    # for example, workout = Workout.new(:user_id => 3), it works

    workout = Workout.new(:user_id => @user, 
                          :workoutdate => @workoutdate.to_time)
    is_new = true
  else
    workout = @workouts[0]
  end
  workout.save
end 
以及从终端生成的SQL:

SQL (0.7ms)  INSERT INTO "intervals" ("created_at", "interval_name", "updated_at", "workout_id") VALUES (?, ?, ?, ?)  [["created_at", Tue, 13 Dec 2011 03:24:28 UTC +00:00], ["interval_name", "INTERVAL"], ["updated_at", Tue, 13 Dec 2011 03:24:28 UTC +00:00], ["workout_id", nil]]

SQL (0.5ms)  INSERT INTO "workouts" ("created_at", "updated_at", "user_id", "workoutdate") VALUES (?, ?, ?, ?)  [["created_at", Tue, 13 Dec 2011 03:24:28 UTC +00:00], ["updated_at", Tue, 13 Dec 2011 03:24:28 UTC +00:00], ["user_id", 1], ["workoutdate", Thu, 08 Dec 2011 08:00:00 UTC +00:00]]

我用不同的方法设计。我觉得你太难了。使用Desive,您可以参照以下用户对象(训练):

@workouts = current_user.workouts.find(...)
然后创建一个新的,如下所示:

@workout = current_user.workout.build(...)

诸如此类……

我使用Desive的方式不同。我觉得你太难了。使用Desive,您可以参照以下用户对象(训练):

@workouts = current_user.workouts.find(...)
然后创建一个新的,如下所示:

@workout = current_user.workout.build(...)

等等……

谢谢你的帮助;不幸的是,没有骰子。我试了一下,但最终还是被一个“命名者”搞砸了。。。nil的未定义方法'interval':NilClass interval是workout下的一个嵌套属性更改了“build”行以符合语法。。。训练=当前用户。训练。构建(…)成功!!!谢谢+为此,我的大脑没有意识到当前用户是一个对象:感谢帮助;不幸的是,没有骰子。我试了一下,但最终还是被一个“命名者”搞砸了。。。nil的未定义方法'interval':NilClass interval是workout下的一个嵌套属性更改了“build”行以符合语法。。。训练=当前用户。训练。构建(…)成功!!!谢谢+1为此-我的大脑没有意识到当前用户是一个对象:D