此功能的最佳数据结构和设计

时间:2009-03-26 03:22:29

标签: ruby-on-rails

在我的Rails应用程序中,我有一个名为Situations的部分,它基本上是对情况的文本描述。但是有几个。我希望能够一次只显示一个,并且每个都显示在自己的页面上(最新创建的那个),然后在页面底部我有链接转到旧版和更新的情况。

假设我的代码中有一个@situations对象,其中包含我想要显示的所有情况。接下来我应该做什么(在控制器和视图中)。

2 个答案:

答案 0 :(得分:3)

我会使用分页(will_paginate)并将每页的项目数设置为1.

然后,您可以使用current_pagenext_page建立链接。请在此处查看source

除此之外,它只是一个标准索引操作,需要对will_paginate进行更改。

这个screencast应该让你知道你需要什么,但要注意插件自制作以来已经有了一些变化。详细信息位于will_paginate github wiki.

答案 1 :(得分:1)

模型/ 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>