@destroy_sys

Как вывести статьи в нужном порядке?

Выводит первым самый старый топик. Единственная идея переписать цикл, чтоб выводил по id(с последнего до первого), но это уже не rails way. Смотрел на гитхабе исходники других блогов, том тоже выводят через "each do".

p.s. тапками не кидайтесь, я только в начале пути освоения руби

<% @articles.each do |article| %>
	<h1><%= link_to article.title, article_path(article) %></h1> 
	<%= article.created_at.strftime("%d %b. %Y") %>
	<%= raw article.tag_list.map { |t| link_to t, tag_path(t)}.join(', ') %>
	<div class="well">
		<%= article.body %>
		<p><%= link_to 'Продолжить чтение... ', article_path(article) %></p>
	</div>
<% end %>
<%= will_paginate @articles, previous_label: "← Назад", next_label: "Вперед →" %>
  • Вопрос задан
  • 2325 просмотров
Решения вопроса 3
viktorvsk
@viktorvsk
В контроллеер:
@articles = Article.order('created_at DESC')
Кстати, во вью вы можете сделать:
<%= render @articles %>
<%= will_paginate @articles, previous_label: "← Назад", next_label: "Вперед →" %>

И создать партиал views/articles/_article.html.erb
и в нем:
<h1><%= link_to article.title, article_path(article) %></h1> 
  <%= article.created_at.strftime("%d %b. %Y") %>
  <%= raw article.tag_list.map { |t| link_to t, tag_path(t)}.join(', ') %>
  <div class="well">
    <%= article.body %>
    <p><%= link_to 'Продолжить чтение... ', article_path(article) %></p>
  </div>
Ответ написан
а можно на уровне модели в запросе отсортировать?
Ответ написан
ammet
@ammet
Ruby on Rails developer
@articles.order('created_at ASC').each do |article|

Но лучше это сделать в контроллере этого экшена, там где ты присваиваешь значение переменной @articles
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы