Tengo un campo birth_date que se almacena como un valor de fecha y hora. Los rieles predeterminados forman helpers escupiendo un formato no muy amigable, p. "2008-06-10 22: 33: 19.000000". El siguiente es el camino de vaililla.Rieles: formato de fecha compatible con el medio ambiente para text_field
<div class="field">
<%= f.label :birth_date %>
<%= f.text_field :birth_date, :size=>"20" %>
</div>
¿Cómo puedo simplemente aplicar un formato? Probé varios enfoques, por ejemplo, strftime debería funcionar, pensé. Pero cuando intento lo siguiente, me sale un error undefined method 'strftime' for nil:NilClass
<div class="field">
<%= f.label :birth_date %>
<%= f.text_field :birth_date, :value=>f.object.birth_date.strftime('%m/%d/%Y'), :size=>"20" %>
</div>
Sobre la base de algunas otras preguntas/respuestas, he intentado lo siguiente. Funciona para valores no nulos, pero es un código feo, y no funciona para valores en blanco (en realidad muestra la fecha de hoy).
<div class="field">
<%= f.label :birth_date %>
<%= f.text_field :birth_date, :value=> Time.parse(f.object.birth_date.to_s).strftime('%m/%d/%Y'), :size=>"20" %>
</div>
En jugando, parece que f.object.birth_date salida es tratada como una fecha, en lugar de fecha y hora. Sin embargo, cuando se muestra en text_field (original, formato feo), incluye la hora. Es viernes por la tarde y mi falta combinada de familiaridad con las formas de los rieles y los objetos de fecha/hora de rubíes me hace sentir como un tonto.
¿Hay alguna forma sencilla de que mi formulario muestre nada si no está en blanco/nulo y una fecha amistosa de lo contrario?
Gracias, hace lo que necesito. Estaba confundido por qué esto no arroja un error al hacerlo sin la verificación nula. Creo que lo tengo ordenado ahora. Esto hace lo que quiero (aunque todavía parece mucho código). –
De nada. La razón por la que arroja un error sin la verificación 'nil' es porque cuando' f.object.birth_date' es 'nil', intentará llamar' strftime' en él. Debido a que 'nil' no tiene un método' strftime', arroja el error. – Claw