Mam więc tygodniowy widok kalendarza i mam skonfigurowaną trasę do akceptowania /: rok /: miesiąc /: dzień dla daty początkowej.Szyny z datami
match "events/(:year/:month/:day)" => "events#index",
:constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
:as => "events_date"
Mam dwa pytania dotyczące korzystania z tej trasy. Po pierwsze, podczas analizowania params, to co robię:
unless params[:year].nil? || params[:month].nil? || params[:day].nil?
start_date = Date.new(params[:year].to_i, params[:month].to_i, params[:day].to_i)
end
start_date = start_date.nil? ? Date.today : start_date
To wydaje mi się dość rozwlekły i rodzaj brzydki. Czy istnieje lepszy sposób?
I przy podejmowaniu link do innego tygodnia w kalendarzu (dla stronicowania tygodnia na tydzień), muszę coś zrobić jak
#assume an date object with the desired start date
link_to events_date_path(date.strftime('%Y'), date.strftime('%m'), date.strftime('%d'))
który wydaje również rodzaj gadatliwym i brzydkie. Jaki jest najlepszy sposób pracy z datami na trasach?
Czy istnieje powód, dla którego musi być czytelny dla człowieka iw tym formacie? Czy byłoby rozsądniej ustawić go jako dopasowanie "events/(: date)" gdzie: data kończy się na byciu "2012-05-01" i możesz zrobić bezpośredni strftime na obiekcie daty rzeczywistej? –
Nie, to jest całkowicie osobisty projekt, jest to zarówno programowanie, jak i prawdziwy problem. – DVG
Przypuszczam, że wezmę moją odpowiedź do pola odpowiedzi. ;) –