我一直在试图弄清楚当条件为真时如何更新表中的字段。
我的网站通过比较两个数组来检查锻炼是否已完成。当 completedExercises 数组与 totalExercisesInWorkout 数组具有相同的锻炼 ID 时,它返回为真。当我得到 true 时,我想为用户分配一个新的workout_id
.
我认为最好的方法是after_save
在模型中使用回调,如下所示:
after_save :is_workout_complete?
protected
def is_workout_complete?
if @totalExercisesInWorkout.included_in?(@completedExercises) == true
current_user.workout_id = @workout.next_workout_id
end
end
问题是,我调用的实例变量是application_controller
在initialize_vars
方法中定义的,这里无法访问。
我应该在其他地方定义这些实例变量吗?我需要它们是几个地方
这是检查最后一个练习是否已完成然后对用户执行操作的最佳方法吗?