Я обновляю свое приложение с Rails 5.0.1 до Rails 6.0
. Все области действия, определенные с помощью arel, перестают работать.
scope :published, -> { where(state: 'published').where arel_table[:published_at].lteq 'NOW()' }
Не возвращайте мне ничего, но ошибка
Content.where(state: 'published').where arel_table[:published_at].lteq 'NOW()'
Traceback (most recent call last):
1: from (irb):4
NameError (undefined local variable or method `arel_table' for main:Object)
Но
Content.arel_table.class
=> Arel::Table
РЕДАКТИРОВАТЬ
Если я использую
Content.where(state: 'published').where Content.arel_table[:published_at].lteq 'NOW()'
Запрос работает, но NOW () равен NULL
Content Load (0.5ms) SELECT "contents".* FROM "contents" WHERE "contents"."state" = $1 AND "contents"."published_at" <= NULL ORDER BY "contents"."published_at" DESC LIMIT $2 [["state", "published"], ["LIMIT", 11]]
=> #<ActiveRecord::Relation []>
Почему?