Vì vậy, tôi có chế độ xem lịch hàng tuần và tôi đã thiết lập tuyến đường để chấp nhận /: năm /: tháng /: ngày cho ngày bắt đầu.Tuyến đường ray có ngày
match "events/(:year/:month/:day)" => "events#index",
:constraints => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/ },
:as => "events_date"
Tôi có hai câu hỏi liên quan đến việc sử dụng tuyến đường này. Trước tiên, khi phân tích cú pháp các tham số, đây là những gì tôi đang thực hiện:
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
Điều này khiến tôi khá là tiết tú và xấu xí. Có cách nào tốt hơn?
Và khi thực hiện một liên kết đến tuần khác trong lịch (đối với tuần phân trang để tuần), làm tôi phải làm một cái gì đó giống như
#assume an date object with the desired start date
link_to events_date_path(date.strftime('%Y'), date.strftime('%m'), date.strftime('%d'))
nào cũng dường như loại verbose và xấu xí. Cách tốt nhất để làm việc với các ngày trong các tuyến đường là gì?
Có lý do nào cần phải đọc được ở người không và ở định dạng đó? Nó sẽ có ý nghĩa hơn để có nó thiết lập như là phù hợp "sự kiện/(: ngày)" nơi: ngày kết thúc lên được như "2012-05-01" và bạn có thể làm một strftime trực tiếp trên đó vào một đối tượng ngày thực tế? –
Không, đây là một dự án hoàn toàn cá nhân, đây là một bài tập lập trình nhiều vì nó là một vấn đề thực sự – DVG
Tôi cho rằng tôi sẽ trả lời câu trả lời cho một trường câu trả lời thực tế. ;) –