Ruby on Rails - Railscast #213 Календарь сортировка по дате, а не по дате
Я создаю приложение, которое включает в себя календарь. Я обнаружил, что Railscast для построения календаря, хотя и датированный, оказался очень полезным. У меня все работает, я просто стараюсь, чтобы содержимое каждой даты было организовано по дате, а не только по дате, чтобы они отображались в правильном хронологическом порядке.
Мой текущий контроллер выглядит так:
def index
@lessons = Lesson.all
@lesson_by_date = @lessons.group_by { |i| i.lesson_date.to_date }
@date = params[:date] ? Date.parse(params[:date]) : Date.today
end
Любая помощь будет принята с благодарностью. Спасибо
1 ответ
Я исхожу из предположения, что ваш вопрос в том, как мне организовать свои @lessons по дате и времени. Я упомяну несколько разных сценариев. Я немного ограничен, так как из вашего поста я не знаю, как вы организовали свою схему для таблицы, но я думаю, что контроллер дает мне примерную идею.
1) Вам следует заменить:
@lesson = Lesson.all
@lesson_by_date = @lessons.group_by { |i| i.lesson_date.to_date }
с чем-то, что быстрее:
@lesson_by_date = Lesson.order('lesson_date')
2) Если вам интересно, почему ваш текущий код не работает, это потому, что ваш блок group_by пытается преобразовать i.lesson_date в IE даты to_date. Вместо этого вы можете попробовать to_datetime.
3) Я хотел бы просмотреть http://apidock.com/rails/ActiveRecord/QueryMethods/order