Как использовать активный запрос записи с символами и операторами?

#ruby-on-rails #ruby #ruby-on-rails-3 #ruby-on-rails-3.1

#ruby-on-rails #ruby #ruby-on-rails-3 #ruby-on-rails-3.1

Вопрос:

Может ли это быть преобразовано для использования обозначения символов и операторов вместо этого для лучшей читаемости:

   scope :visible, where("is_hidden = false")
  scope :current, where("exp_date IS NULL OR exp_date > "   timestamp)
  

Преобразовать во что-то вроде этого:

 scope :active, where(   :is_hidden => false,
                        (:exp_date => nil || :exp_date > timestamp)
                    )
  

Извините за испорченный синтаксис (я новичок в ruby)

Комментарии:

1. Проверьте Squeel github.com/ernie/squeel

2. Что означает «Состояние сборки: СБОЙ» на их GitHub? Безопасно ли использовать этот драгоценный камень?

3. Squeel — это потрясающе. Если вы используете версию до 3.1 и у вас возникли проблемы, вы можете проверить meta_where … те же люди, которым я верю.

4. Squeel, кажется, отлично работает! Теперь, если бы кто-нибудь мог просто указать это в качестве ответа, чтобы я мог закрыть его. 🙂

Ответ №1:

Я вроде как чувствую, что краду славу у людей, комментирующих ваш вопрос, но вот возможное решение:

С помощью squeel вы могли бы написать свои области примерно так:

 def self.active
  where{!is_hidden}
end

def self.current(timestamp)
  where{exp_date.nil? | exp_date > timestamp}
end