Describe the bug
When using nested combine you are unable to modify the node of the first level of nesting. This ones is best explained by the script, but there's a fair amount of setup. The juicy part:
arel.combine(bbb: :ccc).node(:bbb) { _1.select(:id) }
# => wrong argument type Symbol (expected Array)
To Reproduce
require "rom"
require "rom-sql"
require "dry-types"
require "sqlite3"
rom = ROM.container(:sql, 'sqlite::memory') do |config|
config.default.create_table(:cccs) do
primary_key :id
end
config.default.create_table(:bbbs) do
primary_key :id
Integer :ccc_id
end
config.default.create_table(:aaas) do
primary_key :id
Integer :bbb_id
end
config.relation(:cccs) do
schema do
attribute :id, Dry::Types["integer"]
primary_key :id
end
end
config.relation(:bbbs) do
schema do
attribute :id, Dry::Types["integer"]
primary_key :id
attribute :ccc_id, Dry::Types["integer"]
associations do
belongs_to :ccc
end
end
end
config.relation(:aaas) do
schema do
attribute :id, Dry::Types["integer"]
primary_key :id
attribute :bbb_id, Dry::Types["integer"]
associations do
belongs_to :bbb
end
end
end
end
arel = rom.relations[:aaas]
brel = rom.relations[:bbbs]
crel = rom.relations[:cccs]
brel.changeset(:create, id: 1).commit
crel.changeset(:create, id: 1).commit
arel.changeset(:create, bbb_id: 1, ccc_id: 1).commit
arel.combine(bbb: :ccc).node(:bbb) { _1.select(:id) }
# => wrong argument type Symbol (expected Array)
Expected behavior
I can work with the first level node.
My environment
- Affects my production application: no
- Ruby version: 3.1.1
- OS: M1 Mac
Describe the bug
When using nested
combineyou are unable to modify the node of the first level of nesting. This ones is best explained by the script, but there's a fair amount of setup. The juicy part:To Reproduce
Expected behavior
I can work with the first level node.
My environment