tpl
September 30, 2009, 6:08pm
1
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 ?
gotar
September 30, 2009, 8:05pm
2
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
sevos
September 30, 2009, 8:22pm
3
Może nawet ustaw w kontrolerze przy zapisie? Pamiętaj, że żądanie HTTP może niekoniecznie pochodzić z przeglądarki.
Bragi
October 1, 2009, 6:36am
4
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]
sevos
October 1, 2009, 9:54am
5
Racja, racja. Wczoraj już byłem lekko przymulony
tpl
October 1, 2009, 2:24pm
6
[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 ?
tjeden
October 1, 2009, 2:37pm
7
@tpl
Przeczytaj to co napisałeś jeszcze raz.
Tomash
October 1, 2009, 2:41pm
8
I już więcej nie pij przed zalogowaniem
tpl
October 2, 2009, 12:45pm
9
nie no, zawsze pije przed zalogowaniem, przecież na trzeźwo się nie da
drogus
October 2, 2009, 1:01pm
10