按费用订购查询

时间:2011-12-15 07:21:42

标签: ruby-on-rails

我一直在寻找这个但是我似乎无法让它工作,即使他们已经说过如何在某些博客上这样做。

这是我的控制器代码:

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

聚苯乙烯。我不知道我按特定值查找类别的方法是最有效的方法还是根据标准。如果您知道更好,更有效的方法来实现这一点,请告诉我如何。 :)

1 个答案:

答案 0 :(得分:2)

对于cost列,您的数据库列类型可能有错误吗?

此外,您可以安全地省略all,并使用@items = Item.order('cost ASC')

按类别过滤,订单:

@items = Item.where(:category => 'consumables').order(:cost)   # ASC is by default