2016-01-09 192 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 %>