Rails同一个Active Record的多个实例

时间:2014-08-08 01:44:38

标签: ruby-on-rails rails-activerecord

所以我对铁路很新,但我觉得我经历了很多文件。

我正在尝试使用两个@tasks列表填充我的页面,一个已完成,另一个已完成。

我怎样才能在一个页面上同时获得这两个?

我是否需要做两个.find并制作两个有效记录?

或者是在一个查询中完成它的方法吗?

1 个答案:

答案 0 :(得分:0)

首先,在模型中指定范围。 http://guides.rubyonrails.org/active_record_querying.html#scopes

class Task < ActiveRecord::Base
  scope :done, -> { where(finished: true) }
  scope :todo, -> { where(finished: false) }
end

然后在控制器中选择它们:

def index
  @done = Task.done
  @todo = Task.todo
end

然后在视图中显示:

<h1>Done tasks</h1>
<% @done.each do |task| %>
  <h5><%= task.title %></h5>
  <p><%= task.created_at %></p>
<% end %>

<h1>Todo tasks</h1>
<% @todo.each do |task| %>
  <h5><%= task.title %></h5>
  <p><%= task.created_at %></p>
<% end %>