Необъявленный тип атрибута для перечисления 'chat_send_shortcut' в UserOption

Я пытался запустить rspec для плагинов, и вот что получилось:

Похоже, проблема была введена здесь:

Возможно, не хватает base.attribute :chat_send_shortcut, :integer, default: 0?

Я столкнулся с той же проблемой при добавлении нового перечисления. Оказалось, что мне нужно было явно выполнить миграции плагинов для тестовой среды:
RAILS_ENV=test LOAD_PLUGINS=1 bin/rails db:migrate

О, интересно. Я думал, что db:migrate по умолчанию включает плагины.
Действительно, у меня было довольно много миграций, ожидающих плагинов в RAILS_ENV=test.
Ошибка теперь исчезла, спасибо!

РЕДАКТИРОВАНИЕ:

На самом деле, если вы используете RAILS_ENV=test bin/rake db:migrate, обратите внимание на “bin/” — это устанавливает LOAD_PLUGINS в 1.

image

Вы можете увидеть содержимое bin/rake:

if ENV['RAILS_ENV'] == 'test' && ENV['LOAD_PLUGINS'].nil?
  if ARGV.include?('db:migrate') || ARGV.include?('parallel:migrate')
    STDERR.puts "Вы пытаетесь запустить миграции в тестовом окружении и не загружаете плагины, устанавливаем LOAD_PLUGINS в 1"
    ENV['LOAD_PLUGINS'] = '1'
  end
end

Когда-то я, наверное, перестал писать bin/ из лени :grinning_face_with_smiling_eyes:.