Formatowanie daty

mam takie cuś:

<%= f.datetime_select(:start, :add_month_numbers => true, :discard_minute => true) %>

i niby wszystko ok, bo wg założenia nie wyświetlają się minuty, ale w bazie podczas zapisywania się zapisują i tak: jak mamy godz. 19:58 to na liście wyboru jest 19, no ale w bazie zapisze się 19:58. Nie wiem jak zrobić, żeby w bazie zapisało się to co widać czyli jeżeli godzina 19 to 19:00 ?

ustaw minuty na 00, czyli jakies tam :minutes=> “00”. Jak dokładnie to musisz sprawdzic

no i ja zamiast tych discard bym dal order, w nim ustawiasz sobie kolejnosc, pomijajac minuty, a na minuty ustawiasz => 00 i tyle, mysle ze zadziala.

No albo przechwicic to juz jak bedzie zrobione i wyzerowac minuty w jaki kolwiek sposob. np

a = Time.now
a - a.min.to_i.minute

i masz czas z zerowymi minutami. No ale to brzydki sposob i na pewno mozna to zrobic duzo latwiej. Ale nic mi o tej porze do glowy nie przychodzi

Może nawet ustaw w kontrolerze przy zapisie? Pamiętaj, że żądanie HTTP może niekoniecznie pochodzić z przeglądarki.

Kontroler nie jest od takich rzeczy.

Ustawienie minut na 00 to wymaganie biznesowe, więc nadaje się idealnie do modelu:

[code=ruby] before_update :sanitize_start_minutes

def sanitize_start_minutes
self.start = start - start.min.to_i.minute
end[/code]

Racja, racja. Wczoraj już byłem lekko przymulony :slight_smile:

[quote=Bragi][code=ruby] before_update :sanitize_start_minutes

def sanitize_start_minutes
self.start = start - start.min.to_i.minute
end[/code]
[/quote]
no tak, a jak to użyć, bo rozumiem że to do medelu, a w widoku before_update :sanitize_start_minutes ?

@tpl

Przeczytaj to co napisałeś jeszcze raz. :slight_smile:

I już więcej nie pij przed zalogowaniem :wink:

nie no, zawsze pije przed zalogowaniem, przecież na trzeźwo się nie da :smiley:

Pewnie już wszyscy znają, ale: http://n2.cdn.spikedhumor.com/1/589000/136992_ballmer_peak_1_vw.jpg :smiley: