You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a relation with the name options exists the following error is raised when you create an instance of it:
rom-core-5.2.6/lib/rom/schema.rb:232:in `[]': :struct_namespace attribute doesn't exist in options schema (KeyError)
This happens because ROM::Initializer::InstanceMethods#options is called at either ROM::Relation#struct_namespace or ROM::Relation#meta_ast.
To Reproduce
require "rom"
require "dry-types"
rom = ROM.container(:memory, 'memory://test') do |config|
config.relation(:options) do
schema do
attribute :whatever, Dry::Types["string"]
end
end
end
options = rom.relations[:options]
options.changeset(:create, whatever: "who cares").commit
Expected behavior
A relation named options doesn't poop my app
My environment
Affects my production application: No in that we're not yet in production, but yes this impacts real job stuff.
Ruby version: 3.1.1
OS: MacOS 12.whatever on an Apple Silicon device.
The text was updated successfully, but these errors were encountered:
Thanks for reporting this. It's been on my radar as it's a general issue of having reserved names that cannot be used as relation names. This will be properly addressed in 6.0.
Describe the bug
When a relation with the name
options
exists the following error is raised when you create an instance of it:This happens because
ROM::Initializer::InstanceMethods#options
is called at eitherROM::Relation#struct_namespace
orROM::Relation#meta_ast
.To Reproduce
Expected behavior
A relation named
options
doesn't poop my appMy environment
The text was updated successfully, but these errors were encountered: