私はRuby on Rails 3.2.2を使用していますが、ActiveRecord::Relation
オブジェクトをメソッドパラメーターとして渡すことが正しい/危険ではない/一般的なアプローチであるかどうかを知りたいです。
現時点では、このアプローチをモデルのスコープ メソッドで次のように使用する予定です。
class Article < ActiveRecord::Base
def self.with_active_associations(associations, active = nil)
# associations.class
# => ActiveRecord::Relation
case active
when nil
scoped
when 'active'
with_ids(associations.pluck(:associated_id))
when 'not_active'
...
else
...
end
end
end
注 I : パフォーマンス上の理由からこのアプローチを使用したいと考えています。これActiveRecord::Relation
は、遅延読み込みが行われるためです (私の場合、active
パラメーター値がデータベースにない場合active
、データベースはまったくヒットしません)。
注 II : の代わりに をパラメーター値pluck
として渡すと、メソッドを使用するとエラーが発生する可能性があります。association
Array
ActiveRecord::Relation