2016-01-09 140 views
0

林试图在Rails的应用程序4.轨道4 - 订货范围

我有我的资历模型中的两个范围:

scope :completed, ->{ where(pending: !true) } 
scope :pending, -> { where(pending: true) } 

我试图将它们列(最新一)我视图。

我有此视图文件:

<% Qualification.pending.sort_by.year_earned.asc.each do |qualification| %> 
    <div class="row"> 
    <div class="col-md-12"> 
     <div class="profilequalifications"> 
     <%= qualification.current_study %> 
     </div>  
    </div> 
    </div> 
<% end %> 

<% Qualification.completed.sort_by(&:year_earned).each do |qualification| %> 
    <div class="row"> 
    <div class="col-md-12"> 
     <div class="profilequalifications"> 
     <%= qualification.completed_award %> 
     </div>  
    </div> 
    </div> 
<% end %> 

第二个索引的作品 - 但在错误的顺序。

第一个索引 - 我已经尝试了一百万个表达式的变体,但找不到一个不会抛出错误的变体。

我已经尝试每一个上面,和下面的(其中的每一个下面的例子我在此网站上发现):

<% Qualification.pending.sort_by(&:year_earned).reverse_order.each do |qualification| %> 

<% Qualification.pending.sort_by(&:year_earned.reverse).each do |qualification| %> 

<% Qualification.pending.sort_by('&:year_earned ASC').each do |qualification| %> 


<% Qualification.pending.sort_by('year_earned ASC').each do |qualification| %> 

而不是全部列出来了 - 没有人知道如何在列表升序?

回答

0

我会包括你的范围内的顺序。

scope :completed, ->{ where(pending: !true).order('year_earned DESC') } 
scope :pending, -> { where(pending: true).order('year_earned DESC')} 

并在您的视图中删除.sort_by,它应该工作。

<% Qualification.pending.each do |qualification| %> 
<div class="row"> 
    <div class="col-md-12"> 
    <div class="profilequalifications"> 
    <%= qualification.current_study %> 
    </div>  
    </div> 
    </div> 
<% end %> 

<% Qualification.completed.each do |qualification| %> 
<div class="row"> 
    <div class="col-md-12"> 
    <div class="profilequalifications"> 
    <%= qualification.completed_award %> 
    </div>  
    </div> 
</div> 
<% end %>