通过 after_create 回调,我试图通过连接模型为用户分配 Program_id,并为同一连接模型中的三个附加参数分配初始值。
分配 program_id 工作正常,我不知道如何添加其他参数。
class User < ActiveRecord::Base
after_create :assign_user_program, :add_initial_programs
def assign_user_program
self.programs = Program.for_user(self)
end
class Program < ActiveRecord:Base
def self.for_user(user)
where(:goal_id => user.goal_id, :experience_id => user.experience_level_id, :gender => user.gender)
end
我尝试在 after_create 中创建另一个方法来分配其他三个参数,但这只是在连接模型中创建另一个记录,并分配了三个参数,并且没有 program_id
def add_initial_programs
self.user_programs.create(:cycle_order => 1, :group_order => 1, :workout_order => 1)
end
关于如何简单地更新刚刚创建的记录的任何想法?
编辑:
澄清一下,我试图在连接表中创建一条记录,其中包括 program_id、user_id、group_order、cycle_order 和锻炼顺序,如图所示:
发生的事情是我得到两条记录,一条带有 program_id,另一条没有 program_id,但分配了其他值。见下图: