Используя Rails 6, я пытаюсь установить связь has_many с объединением в столбец jsonb postgres.
class Form
has_many :automation_triggers, foreign_key: "preferences->>'form_id'"
end
Это приводит к ошибке:
ActiveRecord::StatementInvalid (PG::UndefinedFunction: ERROR: operator does not exist: bigint = jsonb)
Внешний ключ должен быть приведен как целое число для устранения ошибки, поэтому запрос должен выглядеть следующим образом:
SELECT "automation_triggers".* FROM "automation_triggers" INNER JOIN forms ON (forms.id = (automation_triggers.preferences->'form_id')::int)
Есть ли способ применить приведение к внешнему ключу ассоциации has_many? или написать пользовательский запрос на присоединение для ассоциации?