Hi Jeremy, Thank you for the response. I'm going to look into a plugin for this once I get a moment. I appreciate you confirming that is a sound approach.
Cheers. On Wednesday, September 15, 2021 at 3:28:40 PM UTC-4 Jeremy Evans wrote: > On Mon, Sep 13, 2021 at 12:43 PM [email protected] < > [email protected]> wrote: > >> I like to share dataset concerns (conditions, order) across models by >> passing a block to the association. This should be of no surprise to >> anybody: >> >> one_to_many :widgets do |ds| >> ds.sellable >> end >> >> What may come as a surprise is that the block is ignored when the >> association is being graphed through `eager_graph` or `association_join`. >> Separate options to the association are needed if you end up in this >> scenario (AFAIK). In the below example, the `JOIN` on `widgets` in the >> resulting SQL doesn’t state the sellable conditions. >> >> Model.association_join(:widgets) >> >> This can be worked around a few different ways, but I’m curious if >> anybody else is encountering this on their teams, and how you may have >> worked around it? It's documented that this occurs, so I'm not sure more >> documentation would help. >> >> I’d think I'd almost rather there be an exception raised here, or at >> least an option/plugin to, forcing me to allow the `eager_graph` or >> `association_join` to continue, knowing the conditions are lost without >> also setting `graph_block` or similar options on the association. >> >> Thoughts? >> >> Adam >> > > Sorry for not responding to this earlier. For some reason it ended up in > my spam folder. > > I think it may be possible to add a plugin that automatically sets > `allow_eager_graph: false` for associations with blocks but without one of > the :graph_* options. I agree with you that that behavior may be a better > default. Maybe I could consider making it the default in Sequel 6. > > Thanks, > Jeremy > -- You received this message because you are subscribed to the Google Groups "sequel-talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sequel-talk/488d7a14-32b2-415a-8850-4706e2f59684n%40googlegroups.com.
