#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