# How to use rom\_factory with many to many relation

**URL:** <https://discourse.rom-rb.org/t/how-to-use-rom-factory-with-many-to-many-relation/358>\
**Category:** Issues\
**Created:** [March 29, 2020, 5:52pm UTC](https://discourse.rom-rb.org/t/how-to-use-rom-factory-with-many-to-many-relation/358 "2020-03-29T17:52:27Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![k0va1](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/k0va1/32/188_2.png) [@k0va1](https://discourse.rom-rb.org/u/k0va1)\
**Post date:** [March 29, 2020, 5:52pm UTC](https://discourse.rom-rb.org/t/how-to-use-rom-factory-with-many-to-many-relation/358/1 "2020-03-29T17:52:27Z")

</div>

Hi! I have 3 relations:

```
class Talks < ROM::Relation[:sql]
  schema(:talks, infer: true) do
    associations do
      has_many :talks_speakers
      has_many :speakers, through: :talks_speakers
    end
  end

class Speakers < ROM::Relation[:sql]
  schema(:speakers, infer: true) do
    associations do
      has_many :talks_speakers
      has_many :talks, through: :talks_speakers
    end
  end

class TalksSpeakers < ROM::Relation[:sql]
  schema(:talks_speakers, infer: true) do
    associations do
      belongs_to :talk
      belongs_to :speaker
    end
 end

```

I want to obtain Talk ROM::Struct with Speakers. Is it possible?

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [March 31, 2020, 10:44am UTC](https://discourse.rom-rb.org/t/how-to-use-rom-factory-with-many-to-many-relation/358/2 "2020-03-31T10:44:19Z")

</div>

Doesn’t `f.association(:speakers)` work in a factory definition block?

---

<div class="post-metadata">

**Author:** ![k0va1](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/k0va1/32/188_2.png) [@k0va1](https://discourse.rom-rb.org/u/k0va1)\
**Post date:** [March 31, 2020, 2:00pm UTC](https://discourse.rom-rb.org/t/how-to-use-rom-factory-with-many-to-many-relation/358/3 "2020-03-31T14:00:46Z")

</div>

Unfortunately nope ☹ Here is a stacktrace:

```auto
NameError:
  uninitialized constant ROM::Factory::Attributes::Association::ManyToMany
  Did you mean? ROM::Factory::Attributes::Association::ManyToOne
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/attributes/association.rb:9:in `const_get'
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/attributes/association.rb:9:in `new'
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/dsl.rb:143:in `association'
# ./spec/support/factories/talk_fabricator.rb:14:in `block in <top (required)>'
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/dsl.rb:44:in `initialize'
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/factories.rb:231:in `new'
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/factories.rb:231:in `extend_builder'
# /usr/local/bundle/ruby/2.6.0/gems/rom-factory-0.10.1/lib/rom/factory/factories.rb:143:in `define'
# ./spec/support/factories/talk_fabricator.rb:13:in `<top (required)>'
# /usr/local/bundle/ruby/2.6.0/gems/hanami-utils-2.0.0.alpha1/lib/hanami/utils.rb:56:in `require_relative'
# /usr/local/bundle/ruby/2.6.0/gems/hanami-utils-2.0.0.alpha1/lib/hanami/utils.rb:56:in `block in require!'
# /usr/local/bundle/ruby/2.6.0/gems/hanami-utils-2.0.0.alpha1/lib/hanami/utils.rb:78:in `each'
# /usr/local/bundle/ruby/2.6.0/gems/hanami-utils-2.0.0.alpha1/lib/hanami/utils.rb:78:in `for_each_file_in'
# /usr/local/bundle/ruby/2.6.0/gems/hanami-utils-2.0.0.alpha1/lib/hanami/utils.rb:56:in `require!'
# ./spec/spec_helper.rb:20:in `<top (required)>'

```

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [March 31, 2020, 2:33pm UTC](https://discourse.rom-rb.org/t/how-to-use-rom-factory-with-many-to-many-relation/358/4 "2020-03-31T14:33:16Z")

</div>

OK this means it is not supported yet. You could report a feature request about it, this way you’ll get notified when it’s implemented.
