Фрагмент code
имеет три метода: lambda
, scope
и class method
.
Все они возвращают те же результаты.
Вопросы:
- Есть ли какая-либо передовая практика в
Ruby/Rails
, когда она предпочтительнее использовать одну над другой? -
В каких случаях вы бы использовали метод
lambda
,scope
илиclass
(лучшие практики).class Cars < ActiveRecord::Base attr_accessible :manufacturer, :price, :used #one scope :used_and_cheap_lambda, lambda { where('used = ?', true ).where('price >= ?',30000) } #two scope :used_and_cheap_scope, where('used = ?', true ).where('price >= ?',30000) #three def self.used_and_cheap_class where('used = ?', true ).where('price >= ?',30000) end end Cars.used_and_cheap_lambda.count => #24 Cars.used_and_cheap_class.count => #24 Cars.used_and_cheap_scope.count => #24