2016-10-21 2 views
0

私は2つの列に基づいてレコードを注文したいArthimatic operation。Ruby on railsのアクティブレコードで関節炎手術に基づ​​いてソートすることはできますか?

例:私は心臓手術を行い、その値に基づいてソートする必要があるテーブル列を持っています。 列をmath, science and totalとします。テーブル名はUserMarkです。 通常、私のクエリは、この

UserMark.order('(math/total) desc') 

このように見える数学/総operation.Howに基づいてUserMarksを注文する必要があり、それは、Ruby on Railsの中で行うことができますか?

+1

あなたは「2列」と言って3列を表示します。 'order( 'math/total desc')の何が間違っていますか? –

+0

これは、多くの列を含むテーブルの表示を与えることです。しかし、私は特定の列を介して操作が必要です。 – ashr81

+1

私はまだあなたが何を求めているのか理解していません。あなたはどんな式でもソートすることができますので、何が問題なのですか? –

答えて

1

あなたには2つの可能性があります。

アクティブレコードクエリ自体でソートを行うことができます。

UserMark.select("math/total as percentage").order('percentage desc') 

または

あなたはルビーの方法でそれを行うことができます(この方法は、お使いのモデルにする必要があります)。

def percentage 
    self.math/self.total 
end 

def self.sort_by_percentage 
    UserMark.all.sort_by(&:percentage).reverse 
end 
+0

ありがとうございました。とにかく、パーセンテージとして数学/合計値を取得することはありますか。既存のレコードを一時的に使用するかどうか。上記の方法でソートすることができます。 – ashr81

+0

アクティブレコードクエリまたはルビーメソッドでソートしていますか? – Jayaprakash

+0

アクティブレコードのクエリです。 – ashr81

関連する問題