Использовать внешний ключ JSONB в ассоциации Rails - PullRequest
0 голосов
/ 24 октября 2019

Используя 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? или написать пользовательский запрос на присоединение для ассоциации?

...