Неверное количество аргументов (0 для 1) Ошибка при использовании Rails Scope для поиска всех в текущем месяце
Я новичок в области и при создании этого нашел то, что я думал, будет работать здесь Область Rails, созданная в течение месяца. Тем не менее, мой код ниже, дает неправильное количество аргументов (0 для 1), и я не уверен, почему. Я ценю любую помощь, предлагаемую по этому вопросу.
Объем, дающий проблему, ниже.
scope :contract_out, -> (date) { where("DATE_PART('month', contract_out_date) = ?", date.month) }
1 ответ
Решение
Чтобы получить все записи за текущий месяц, используйте следующую область:
scope :contract_out, where("contract_out_date >= ? AND contract_out_date < ?", Date.today.beginning_of_month, Date.today.end_of_month)
Для работы в течение любого месяца, не только текущего, область действия будет изменена, чтобы принять 1 атрибут:
scope :contract_out, ->(date) {where("contract_out_date >= ? AND contract_out_date < ?", date.beginning_of_month, date.end_of_month)}