Ruby on rails 为什么当前用户总是user\u id=1?
我不明白为什么当前用户总是设置为user\u id=1 当它编辑数据时,会适当地设置用户id,但当它创建新记录时,会将用户id设置为1 使用轨道3.1.3 w/装置 控制员: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
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