我有一个周期模型,包含 start_date 和 end_date。它属于一个主题模型。
在我的主题表单中,我也想管理期间。因此,首先我只为该期间的两个日期使用了两个文本字段。我也有一个reject_if end_date 为零。
accepts_nested_attributes_for :period,
reject_if: lambda { |p| p[:end_date].blank? }
有用。几个月后,我将表单更改为使用 date_select,它显示了一些用于输入日期的选择语句。
当我这样做时,我发现每个选择都会是这样的:
<select name="topic[period_attributes][end_date(1i)]" id="topic_period_attributes_end_date_1i">
注意1i
,这意味着我的reject_if 不再起作用,因为任何东西都会被拒绝。我需要更改为:
accepts_nested_attributes_for :period,
reject_if: lambda { |p| p[:'end_date(1i)']].blank? }
这会起作用,但不如以前好(只检查日期的年份似乎容易出错)。
使用 date_select 时是否有正确的拒绝方法?