2013-08-06 25 views
0

我有一個控制器下面的代碼片段,應該按照創建日期從最新到最舊的順序排列調查列表。Rails命令不能從控制器工作

# GET /surveys 
    def index 
    @survey_type = get_survey_type 
    @surveys = @survey_type.surveys 
    @surveys.order('created_at desc') 
    end 

由於某些原因,無論我添加還是刪除'desc'部分,排序順序都不會改變。我已經做了一些

Survey.all.order('created_at') 

Survey.all.order('created_at desc') 

快速測試在Rails的控制檯,並有順序按預期工作。因此,這段代碼中的某處可能是問題所在。

回答

1

你應該有:

@surveys = @surveys.order('created_at DESC') 

或:

@surveys = @survey_type.surveys.order('created_at DESC') 

你有這樣的問題,因爲你不設置@surveys是一個實例ActiveRecord::Relation作用域與秩序。

+0

啊不分配 - 業餘愛好者。 – Lee

+1

我檢測到FWIW的另一個問題是,如果您使用DataTables,它會根據第一列使用您的數據,這會產生類似的問題,可能會造成混淆 – Lee