My first trouble:
I have JSONB columns in my entities. Before, reading them by Hanami::Model, resulted in a hash. After switching to ROM, the column read from DB returns JSON.
# Before (Hanami::Model)
message.payload
# => { author: "Jsmith", content: "My message" }
# After (ROM 5.0)
# frozen_string_literal: true
module Entities
class Message < ROM::Struct
end
end
# frozen_string_literal: true
module Persistence
module Relations
class Messages < ROM::Relation[:sql]
schema(:messages, infer: true)
auto_struct true
end
end
end
class MessageRepository < Rom::Repository[:messages]
end
MessageRepository.new.messages.first.payload
# => "{\"author\":\"Jsmith\",\"content\":\"My message\"}"
Question: How I should configure a Mapper for all JSONB columns in my system at once?