FIX: ActiveModel::Types :array load error in production (#22377)

Followup to 3f1024de76

The ActiveModel::Types.register(:array) call for chat was
called too late in the Zeitwerk load order in production,
causing this error:

> `lookup': Unknown type :array (ArgumentError)
> raise ArgumentError, "Unknown type #{symbol.inspect}"
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

We need to load the type and register it manually before the rest
of the chat files are loaded via the engine and Zeitwerk.
This commit is contained in:
Martin Brennan 2023-07-03 11:30:09 +10:00 committed by GitHub
parent 3f1024de76
commit 821cf201f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 2 deletions

View File

@ -18,3 +18,5 @@ module Chat
end end
end end
end end
ActiveSupport.on_load(:active_record) { ActiveModel::Type.register(:array, Chat::Types::Array) }

View File

@ -32,6 +32,7 @@ module ::Chat
end end
require_relative "lib/chat/engine" require_relative "lib/chat/engine"
require_relative "lib/chat/types/array"
after_initialize do after_initialize do
register_seedfu_fixtures(Rails.root.join("plugins", "chat", "db", "fixtures")) register_seedfu_fixtures(Rails.root.join("plugins", "chat", "db", "fixtures"))
@ -496,8 +497,6 @@ after_initialize do
) )
register_bookmarkable(Chat::MessageBookmarkable) register_bookmarkable(Chat::MessageBookmarkable)
ActiveModel::Type.register(:array, Chat::Types::Array)
end end
if Rails.env == "test" if Rails.env == "test"