Tworzę sobie aplikację z aukcjami.
Tabela aukcje ma miedzy innymi pola start_at i finish_at typu datetime.
Jak zrobić coś takiego, aby użytkownik podczas dodawania aukcji wybierał z listy rozwijanej liczbę dni jaką ma trwać aukcja i aby na tej podstawie do bazy trafiała odpowiednio obliczana data finish_at?
Czyli w jaki sposób i gdzie można ustawiać dane trafiające do bazy wynikające z innych danych z formatki w widoku ?
jak dla mnei nie potrzebnie tak na okolo jak wszystko masz co potrzebujesz, pole finish_at jest nadmiarowe
bo w bazie bedziesz mial date poczatku i ilosc dni trwania wtedy w kaazdym miejscu gdzie potrzebujesz mozesz sobie dac cos takiego
aukcja.start_at + aukcja.czas_trwania. No w uproszczeniu, albo nawet na poziomie kontrolera poprzez zapytanie sql. SQL swietnie operuje na datach. wiec cos takiego tez bedzie dobre.
[code=ruby]def duration=(days)
start_at = Time.now
finish_at = start_at.advance :days => days
end
def duration
(finish_at - start_at) * 60 * 60 * 24 # Prawdopodobnie można to zrobić ładniej.
end[/code]
A generowanie selektów jest dokładnie opisane w dokumentacji.