tag rails link_to content_tag content ruby-on-rails chronic

ruby on rails - rails - ¿Puede el uso crónico perjudicar su sentido del tiempo?



content_tag link_to rails (1)

Jaja..

Estoy usando Chronic para analizar el tiempo que los usuarios agregan en el calendario. Cuando el código funciona e implementa el momento adecuado, el resultado final es que, si un usuario agrega una hora, no tiene fecha y, como no tiene fecha, no se mostrará en los resultados. ¿Algunas ideas?

def set_dates unless self.natural_date.blank? || Chronic.parse(self.natural_date).blank? # check if we are dealing with a date or a date + time if time_provided?(self.natural_date) self.date = nil self.time = Chronic.parse(self.natural_date) else self.date = Chronic.parse(self.natural_date).to_date self.time = nil end end unless self.natural_end_date.blank? || Chronic.parse(self.natural_end_date).blank? # check if we are dealing with a date or a date + time if time_provided?(self.natural_end_date) self.end_date = nil self.end_time = Chronic.parse(self.natural_end_date) else self.end_date = Chronic.parse(self.natural_end_date).to_date self.end_time = nil end end end

Editar:

Aquí está el tiempo provisto? método:

def time_provided?(natural_date_string) date_span = Chronic.parse(natural_date_string, :guess => false) (date_span.last - date_span.first).to_i == 1 end


Primero, no estoy realmente seguro de qué está preguntando, porque parece que el código hace intencionalmente lo que describe ... Cuando hay tiempo, los campos de fecha se asignan a nil . Y no creo que la culpa sea Crónica, porque así es como funciona su código.

No conociendo su diseño (por qué hay campos de fecha y hora separados), los tipos de campos, etc., sugeriría comenzar con un poco de kludge como este:

if time_provided?(self.natural_date) self.time = Chronic.parse(self.natural_date) self.date = self.time.to_date

o:

self.end_date = Chronic.parse(self.natural_date).to_date if time_provided?(self.natural_date) self.time = Chronic.parse(self.natural_date) end

¿O tal vez el problema está fuera del código que proporcionó: en la parte responsable del comportamiento de "porque no tiene fecha, no se mostrará en los resultados"? ¿Quizás deberías hacer las condiciones más flexibles?