1
我正在使用Ruby on Rails 3.2.2,並且想知道是否將正確/不危險/常見方法作爲方法參數傳遞給ActiveRecord::Relation
對象。將「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
注我:我想用這種方法因爲性能原因,因爲ActiveRecord::Relation
是延遲加載(在我的情況下,如果active
參數值不是active
數據庫根本沒有命中)。
注II:如果我通過作爲association
參數值的Array
代替ActiveRecord::Relation
的pluck
方法的使用可能會產生錯誤。
我無法找到使用和/或解釋傳遞'ActiveRecord :: Relation'作爲方法參數的方法的示例或博客文章。你可以鏈接那些人(如果你知道和/或可以找到一個)? – Backo
我不知道博客評論這件事,但對我來說這似乎不是什麼大事...... – tokland