AlanIkaev
@AlanIkaev
Rails Developer

Как фильтровать данные по прошедшей дате?

Мне нужно отбирать записи по прошедшей дате и по будущей, логику работы понимаю, но как это сделать с использованием Ransack?
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
alfss
@alfss
Пример прямо из документации
class Employee < ActiveRecord::Base
  scope :activated, ->(boolean = true) { where(active: boolean) }
  scope :salary_gt, ->(amount) { where('salary > ?', amount) }

  # Scopes are just syntactical sugar for class methods, which may also be used:

  def self.hired_since(date)
    where('start_date >= ?', date)
  end

  def self.ransackable_scopes(auth_object = nil)
    if auth_object.try(:admin?)
      # allow admin users access to all three methods
      %i(activated hired_since salary_gt)
    else
      # allow other users to search on `activated` and `hired_since` only
      %i(activated hired_since)
    end
  end

  private_class_method :ransackable_scopes
end

Employee.ransack({ activated: true, hired_since: '2013-01-01' })

Employee.ransack({ salary_gt: 100_000 }, { auth_object: current_user })
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Instamart Москва
До 220 000 руб.
от 80 000 до 220 000 руб.
Cashwagon Москва
от 180 000 руб.