name
というフィールド(データベース内)とcollation_name
(データベースにはない)という名前のフィールドを持つ縮小レコードを返すActiveRecordモデルがあります。モデルクラスは、このようになります。ActiveRecordでメソッドによって注文されたすべての行を検索
class Foo < ActiveRecord::Base
# ... other stuff ...
def collation_name
words = name.downcase.split
if words[0] == 'the'
words.shift
end
words.join(' ')
end
end
私のアプリケーションは、実際の列としてcollation_name
を含むデータの非正規化バージョンを含む第二のデータベースにアプリケーションデータベースをエクスポートするために使用されます。 collation_name
を使用して、アプリケーションのビュー内に表示するレコードを注文したいと思います。私はFoo.all(:order=>:collation_name)
を試しましたが、 'そのような列はありません:collation_name'というエラーがありました。
Foo
レコードのリストは、collation_name
で注文できますか?注文時にActiveRecordのアプリケーションデータベースに実際の列としてcollation_name
を追加する必要がありますか? ActiveRecordが結果を返した後でアプリケーションコードをソートする必要がありますか?
私の質問は、私がActiveRecordライブラリで並べ替えを行うことができるかどうかについてです。私はそれを(うまくいけば)もっと明確にするために質問を編集しました。 –
説明に応じて編集されました。 – yawn