RoR:我如何只列出一列中具有特定属性的微博?

时间:2012-09-18 02:22:54

标签: ruby-on-rails-3

现在我使用下面的代码列出所有用户的微博。

<div class="span8">

            <% if @user.microposts.any? %>
            <h3>Purchases I am interested in (<%= @user.microposts.count %>)</h3>
              <ol class="microposts">
                <%= render @microposts %>
              </ol>
              <%= will_paginate @microposts %>
            <% end %>
          </div>

以及为_micropost.html.erb呈现的视图如下

<li>
  <span class="content"><%= micropost.content %></span>
  <span class="timestamp">
    Posted <%= time_ago_in_words(micropost.created_at) %> ago.
  </span>
  <% if current_user?(micropost.user) %>
    <%= link_to "delete", micropost, method:  :delete,
                                     confirm: "You sure?",
                                     title:   micropost.content %>
  <% end %>
</li>

所以这样做很好,但我正在改变。每个微博都有一个hidden_​​tag_field,它是一个字符串(和数据库中的一列),称为kind。它可以是“购买”或“销售”。我想在一个地方列出所有购买微博,在另一个地方列出所有销售微博。如何更改微博视图来执行此操作?

1 个答案:

答案 0 :(得分:0)

控制器:

@purchases = @microposts.where(:kind => 'purchase')
@sales = @microposts.where(:kind => 'sale')

查看:

<h2>Purchases</h2>
<%= render @purchases %>

<h2>Sales</h2>
<%= render @sales %>