2016-08-16 3 views
1

Привет Я создаю сайт с рельсами и бутстрапом, где у меня есть группа списка, заполненная сообщениями. Я хочу иметь отдельные группы списков для каждого отдельного дня.Разделение Сортировка по дате Создано

Например, на данный момент у меня есть:

<ul class="list-group"> 
    <% @posts.each do |post| %> 
    <li class="list-group-item">User has... <%= post.title%> </h2 class="pull-r"> <span class="pull-right"><%=link_to 'View', post%></span></li> 
    <%end%> 
</ul> 

которые дают мне:

enter image description here

Однако я хочу, чтобы это выглядело как:

enter image description here

(хотя, очевидно, с разными p осты на каждый день)

но у меня возникли проблемы, любая помощь будет большой.

+0

Ваш образец кода только показывает цикл для создания элементов в вашей группе списков. Что вы пытаетесь выполнить цикл и создать группу списков для каждой даты? –

+0

Я очень новичок в рельсах, поэтому я не уверен, с чего начать. – user2320239

ответ

1

Группа записи по дате

# change the .all with your condition 
@posts = Post.all.group_by(&:created_at) 

Group по вернет вам хэш, где дата будет ключ и значения будут массив записей с создана в течение дня

<ul class="list-group"> 
    <% @posts.each do |date, posts| %> 
    <li> 
     <h3><%= date.to_date.to_s %></h3> 
     <ul> 
     <% posts.each do |post| %> 
      <li class="list-group-item"> 
      User has... <%= post.title%> </h2 class="pull-r"> 
      <span class="pull-right"><%=link_to 'View', post%></span>  
      </li> 
     <%end%> 
    </ul> 
    </li> 
    <%end%> 
</ul> 
+0

Спасибо за ответ, однако, если я это сделаю, я получаю сообщение об ошибке undefined method 'title 'для # user2320239

+0

Теперь он работает, но добавляет дату для каждого сообщения, а не группирует сообщения по дням – user2320239

Смежные вопросы