Использование инструкции области ActiveRecord для возврата одного результата
У меня есть следующий класс, который отлично работает в моих модульных тестах, но я чувствую, что это может быть проще.
class License < ActiveRecord::Base
scope :active, lambda {
where("active_from <= ?", Date.today).order("version_number DESC")
}
end
def current_license
return License.active.first
end
public :current_license
Я пытался добавить .first
в lambda
пункт, но это вызывает ошибку.
Как мне рассказать scope
Я хочу только первый результат, и таким образом исключить метод current_license
полностью?
1 ответ
Решение
Сделайте это методом, и вы можете получить это:
class License < ActiveRecord::Base
def self.current_license
return License.where("active_from <= ?", Date.today).order("version_number DESC").first
end
end
Что касается количества результатов, попробуйте добавить .limit(1)
, Для получения дополнительной информации, посмотрите здесь.