Лучшая структура данных и дизайн для этой функции - PullRequest
3 голосов
/ 26 марта 2009

В моем приложении на Rails есть раздел «Ситуации», который представляет собой текстовое описание ситуации. Но их несколько. Я хочу иметь возможность отображать только по одному за раз, и каждый на отдельной странице (сначала самые новые), а затем внизу страницы у меня есть ссылки, которые идут на старые и новые ситуации.

Предположим, что в моем коде есть объект @situations, содержащий все ситуации, которые я хочу отобразить. Что мне делать дальше (в контроллере и виде). ​​

Ответы [ 2 ]

3 голосов
/ 26 марта 2009

Я бы использовал нумерацию страниц (will_paginate) и установил бы количество элементов на странице равным 1.

Тогда вы можете использовать current_page и next_page для создания ссылок. См. источник здесь.

Кроме того, это было бы просто стандартное действие индекса с изменениями, необходимыми для will_paginate.

Эта заставка должна дать вам хорошее представление о том, что вам нужно, но имейте в виду, что с момента его создания в плагине произошли некоторые изменения. Подробности в will_paginate github wiki.

1 голос
/ 26 марта 2009

модель / situation.rb

class Situation < ActiveRecord::Base
  default_scope :order => 'created_at desc'
end

Контроллеры / situations_controller.rb

class SituationsController < ActionController::Base
  def index
    @situations = Situation.all
  end
end

Вид / ситуации / index.html.erb

<h1>Situations</h1>
<%= render @situations %>

Вид / ситуации / _situation.html.erb

<h2><%= situation.name -%></h2>
<p><%= situation.description -%></p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...