Плагин scope_out
несовместим с Rails3.
Судя по пояснениям к плагину, он вполне может устареть.Вместо этого вы можете написать эти области как:
class MessageCopy < ActiveRecord::Base
...
scope :deleted, where(:deleted => true)
scope :not_deleted, where("deleted IS NULL OR deleted = ?", false)
end
Более подробную информацию о новом синтаксисе ActiveRelation здесь .
Вы также можете написать это, используя необработанные объекты ARel:
where( arel_table[:deleted].eq(nil).or( arel_table[:deleted].eq(false) ) )
Я использовал новый драгоценный камень под названием MetaWhere для увеличения стандартного ARel.Это позволит вам написать not_deleted
как:
scope :not_deleted, where({ :deleted => nil } | { :deleted => false })
Если вы используете Rails 3.1, попробуйте преемник MetaWhere под названием Squeel
scope :not_deleted, where{ ( deleted == nil ) | ( deleted == false ) }