我有一个将日期字段(collected
)的参数发送为的形式:
“无效日期”(如果未设置日期)
“实际日期”(如果设置了日期)
代码
def ticket_params
params.require(:ticket).permit(:collected, :ticket_number)
end
def list
t = Ticket.new
t.assign_attributes(ticket_params)
if t.changes["ticket_number"].present?
# Do something and build to save to DB
end
# Problem is here
if t.changes["collected"].present?
# Do something and build to save to DB
end
end
注意::collected
是日期时间字段,而ticket_number
是整数字段
现在,例如
如果collected: "2019-01-09T00:00:00-05:00", ticket_number: "null"
然后t.changes
给出
{"ticket_number"=>[nil, 0], "collected"=>[nil, Wed, 09 Jan 2019 00:00:00 -0500]}
但是,如果collected: "Invalid Date", ticket_number: "null"
类似,
那么t.changes
会给出
{"ticket_number"=>[nil, 0]}
现在,我想知道日期何时设置为无效,但是t.changes
不会返回有关collected
字段更改的任何信息
注意::我不能直接检查参数值,我注定要继续使用t.changes
(Active Record Dirty)方式
如果这个问题令人困惑,我深表歉意。我的主要目标是将collected
放在Active Record上