我一直在寻找这个但是我似乎无法让它工作,即使他们已经说过如何在某些博客上这样做。
这是我的控制器代码:
@items = Item.order('cost ASC').all
现在,我希望这会通过cost属性对以下代码进行排序,但它不会:
<ul id="items">
<% @items.each do |item| %>
<% if item.category == "consumables" %>
<li>
<div class="icon <%= item.friendly_id %>"></div>
<div class="tooltip">
<h3><%= item.name %></h3>
<div class="cost">
<span>Cost:</span> <%= item.cost %>
</div>
<p class="description">
<%= item.description %>
</p>
<% unless item.bonus.blank? %>
<p class="bonus">
<%= item.bonus %>
</p>
<% end %>
<% unless item.active.blank? %>
<div class="active">
<h3>Active Ability</h3>
<p><%= item.active %></p>
</div>
<% end %>
</div>
</li>
<% end %>
<% end %>
聚苯乙烯。我不知道我按特定值查找类别的方法是最有效的方法还是根据标准。如果您知道更好,更有效的方法来实现这一点,请告诉我如何。 :)
答案 0 :(得分:2)
对于cost
列,您的数据库列类型可能有错误吗?
此外,您可以安全地省略all
,并使用@items = Item.order('cost ASC')
按类别过滤,订单:
@items = Item.where(:category => 'consumables').order(:cost) # ASC is by default