У меня есть две следующие модели
class Machine < ApplicationRecord
has_many :machine_part_changes
has_one :current_identifier_part_change, -> {
sql = <<-SQL
INNER JOIN "machine_parts"
ON "machine_parts"."id" = "machine_part_changes"."machine_part_id"
AND "machine_parts"."is_machine_external_identifier" = 1
SQL
installed.joins(sql)
},
class_name: 'MachinePartChange'
end
class MachinePartChange < ApplicationRecord
belongs_to :machine_part
belongs_to :machine, touch: true
end
в рельсах 4.2 мне удалось сделать как
Machine.eager_load(:current_identifier_part_change).first
но теперь, после обновления до rails 5.2, я получаю следующую ошибку при запуске тестов.
Failure/Error: machine = Machine.eager_load(:current_identifier_part_change).find(create_machine.id)
NoMethodError:
undefined method `expr' for nil:NilClass
Я не очень разбираюсь в sql :-( и код написан другим разработчиком, что я могу сделать, чтобы пройти этот тест.