Неверное количество аргументов (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)}
Другие вопросы по тегам