Return to Snippet

Revision: 37556
at December 12, 2010 00:59 by stancox


Initial Code
class Car < ActiveRecord::Base
    def self.only_red
        self.find(:all, :conditions => "color = 'red'")
    end
end

#На помощь приходит очень удобный и простой в использовании named_scope.
class Car < ActiveRecord::Base
    named_scope :red, :conditions => 'color = "red"'
end

#Использовать его практически также — Car.red. Но кроме этого, можно использовать его вместе с #методом find, например:
Car.red.find(:all, :limit => 10, :order => "id DESC")

#А еще их можно комбинировать. Сначала добавим новый scope который позволит включить в #запрос пользователей, которым принадлежат машины:
# named_scope :with_users, :include => :users

# Теперь Car.red.with_users создаст сами-знаете-какой запрос. Удобно? Несомненно.

Initial URL


Initial Description


Initial Title
Частоиспользуемые запросы ActiveRecord

Initial Tags


Initial Language
Rails