2015-03-25 28 views
0

我有一个模型Bookinghas_many: appointments。当创建Booking时,我也创建了一些Appointmentsafter_initialize和before_create之间回调

Appointments有一个属性date需要在创建它之后进行填充。例如。 before_save :set_date

然后,我需要在Booking上进行验证,以检查约会是否顺序,这需要每个约会的日期。

  1. Booking初始化
  2. Appointments初始化
  3. Appointments有其date属性设置
  4. 验证Booking

问题是,当验证发生时,日期尚未设置。这很有道理,因为dateAppointment上设置为before_save,并且保存尚未发生。因此我将before_save更改为after_initialise。在这种情况下,需要填入日期的Appointment的其他属性(特别是Block的外键)尚未分配给约会。

我想要在after_initialise之间设置外键,但在before_save之前的回调。那可能吗?

回答

2

我建议使用before_validation回调。如果添加新的验证,并且您需要设置此日期,则不需要每次调用set_date,或者搜索第一次调用的验证。

0

我通过在验证开始时明确地调用set_date函数来解决这个问题,在它通常被调用的地方之前。

相关问题