2015-06-17 2 views
1

Я пишу приложение, в котором я хочу перечислить записи в блогах в соответствии с датой их создания на главной странице индекса. Так что давайте говорить, если у меня есть 10 сообщений в блоге, которые были созданы сегодня я хотел бы иметь что-л, как это прийти на индексной странице приложения ..Rails продолжает игнорировать инструкцию IF внутри представления

Сегодня:

POST 1

POST 2

POST 3

... так далее

Однако, у меня есть это ...

Сегодня:

POST 1

Сегодня:

POST 2

Сегодня:

POST 3

... так далее

Ниже мой код ..

index.html.erb

<% @posts.reverse.each do |post| %> 

    <% flag = true %> 
    <% if post.date.day < Time.now.day && 
      post.date.day >= (Time.now.day - 1.day) %> 

     <!-- This IF statement gets ignored --> 
     <% if flag == true %> 
      <%= "Today" %> 
      <% flag = false %> 
      <br /> 
     <% end %> 

     <tr> 
      <td><p>IMAGINE THIS SENTENCE IS ONE POST</p></td> 
     </tr> 

    <% end %> 
<% end %> 

если заявление, что игнорируется внутри кода действует как флаг, так что он должен выполнить только один раз в каждой группе должностей с той же датой. Но Rails, кажется, полностью игнорирует это по какой-то причине. Если кто-то может помочь мне исправить эту проблему или подтолкнуть меня в правильном направлении, ваша помощь будет очень признательна.

+1

Вы можете установить флаг правда перед обработкой каждого поста – Brennan

+0

@Brennan спасибо за ваш комментарий. Да, я только что осознал свою ужасную глупую ошибку. –

+1

Бывает у нас. Иногда требуется второй набор глаз. – Brennan

ответ

1

Это не то, что if игнорируется, но на каждом посту флаг снова устанавливается на true.

Первый раз, когда вы установите флаг должен быть вне итерации, как это:

<% flag = true %> 

<% @posts.reverse.each do |post| %> 

    <% if post.date.day < Time.now.day && 
      post.date.day >= (Time.now.day - 1.day) %> 

     <% if flag == true %> 
      <%= "Today" %> 
      <% flag = false %> 
      <br /> 
     <% end %> 

     <tr> 
      <td><p>IMAGINE THIS SENTENCE IS ONE POST</p></td> 
     </tr> 

    <% end %> 
<% end %> 
Смежные вопросы