Во-первых, я не совсем уверен, о чем вы спрашиваете, потому что похоже, что код намеренно делает то, что вы описываете ... Когда предоставлено время, поля даты присваиваются nil
. И я не думаю, что виноват Chronic, потому что так работает ваш код.
Не зная вашего дизайна (почему существуют отдельные поля даты и времени), типов полей и т. Д., Я бы предложил начать с небольшого клуджа, подобного этому:
if time_provided?(self.natural_date)
self.time = Chronic.parse(self.natural_date)
self.date = self.time.to_date
или
self.end_date = Chronic.parse(self.natural_date).to_date
if time_provided?(self.natural_date)
self.time = Chronic.parse(self.natural_date)
end
Или, может быть, проблема не в том коде, который вы указали: в части, которая отвечает за поведение "потому что у него нет даты, оно не будет отображаться в результатах"? Может быть, вы должны сделать условия более гибкими?