2011-12-15 7 views
0

Я искал для этого, но я не могу заставить его работать, даже если они заявили, как это сделать в определенных блогах.Заказ запроса по цене

Вот мой код контроллера:

@items = Item.order('cost ASC').all 


Теперь, я надеюсь, что это будет сортировать следующий код по атрибуту стоимости, но это не делает:

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

Ps. Я не знаю, является ли мой метод поиска категории по определенному значению наиболее эффективным способом или в соответствии со стандартами. Если вы знаете о более эффективном и эффективном способе достижения этого, скажите, пожалуйста, как это сделать. :)

ответ

2

Возможно, у вас неправильный тип столбца базы данных для столбца cost?

Кроме того, вы можете смело пропустить all, и просто использовать @items = Item.order('cost ASC')

Фильтрация по категориям, с заказом:

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

Спасибо за ваш ответ! Ни один из этих двух вариантов не работает:/ Он по-прежнему перечисляет предметы, все испорченные, а не в порядке цены. – imjp

Смежные вопросы