私は、データマッパーをORMとして使用するRails3.2アプリに取り組んでいます。関連するモデルの属性で結果セットを並べ替える方法を探しています。具体的には、次のモデルがあります。
class Vehicle
include DataMapper::Resource
belongs_to :user
end
class User
include DataMapper::Resource
has n, :vehicles
end
ここで、車両を照会して、ドライバーの名前で並べ替えることができるようにしたいと思います。次のことを試しましたが、どちらもDatamapperでは機能しないようです。
> Vehicle.all( :order => 'users.name' )
ArgumentError: +options[:order]+ entry "users.name" does not map to a property in Vehicle
> Vehicle.all( :order => { :users => 'name' } )
ArgumentError: +options[:order]+ entry [:users, "name"] of an unsupported object Array
現在、Rubyを使用してクエリ後に結果セットを並べ替えていますが、明らかにパフォーマンスには役立たず、他のスコープでさらにチェーンすることもできません。