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