Я не уверен, что синтетические атрибуты можно использовать таким образом, но у меня есть модель аккаунта с двумя логическими полями: is_class_accout и: is_expense_account.
Я создал атрибут, который не сохраняется в базе данных с именем: is_synthetic, который возвращает true, если либо: is_class_account равно true, либо: is_expense_account равно true.
Что я хочу сделать, так это написать запрос:
Account.find_by_project_id (project_id) .where (is_synthetic: true)
Это возвращает ошибку PG, потому что результирующий запрос ищет поле is_synthetic в БД, и, конечно, его там нет.
Я что-то не так делаю, или это ожидаемое поведение?
Код, который я использую:
class Account < ApplicationRecord
attribute :is_synthetic, :boolean
def is_synthetic
self.is_class_account || self.is_expense_account
end