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

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

问题描述:

现在我正在使用下面的代码列出所有用户的微博。RoR:如何只列出在一列中具有特定属性的微博?

<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> 

所以这个工作得很好,但是我改变的事情了。每个micropost都有一个hidden_​​tag_field,它是一个名为kind的字符串(和数据库中的一列)。它可以是“购买”或“销售”。我想在一个地方列出所有购买微博,并在另一个地方列出所有销售微博。我怎样才能改变微观视图来做到这一点?

控制器:

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

查看:

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

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

这是一个很好的主意。我仍然得到一个错误,但我决定我需要重写这里的问题(http://*.com/questions/12469755/ror-nil-is-not-an-activemodel-compatible-object-that-returns-a-有效-局部的) – BigBoy1337