在我的表单中,我有两个与作业相关的日期字段:start_date
和:end_date
。有一个月和一年。
就像在LinkedIn上一样,对于你目前的工作,最后一年可能不相关。
因此,当用户勾选方框"当前位置"时,我正在寻找用:end_date
替换"present"
的方法。
正确的方法是什么?
更新
我的代码:
<%= f.date_select :end_date, { discard_day: true } %>
答案 0 :(得分:0)
我不会设置丢弃结束日期的值,我会从复选框中将present_job
设置为true(将此属性添加到jobs
表)。这会忽略或清除结束日期。
before_validation :clear_end_date, :if => :present_job
validate :end_date, :presence => true, :unless => present_job
def clear_end_date
self.end_date = nil
end
此外,使用此复选框可以在视觉上禁用并清除表单中的end_date。您只需添加一个事件以查看状态是否更改并更新结束日期字段。
$(".checkbox").change(function() {
if(this.checked) {
// Disable end_date select box and make other visual changes
}
});