Once you’re getting down to specific code choices, it’s better in a PR. So feel free to submit one 👍
You also don’t have to get everything right up front as long as you help guide reviewers. For instance, it's fine to submit a piecemeal PR, just describe what you intend to defer for your second/third pass (e.g. tests, documentation, CHANGELOG entry). > Den 13. dec. 2018 kl. 19.45 skrev Tom Rossi <t...@higherpixels.com>: > > I'd like to give this a shot! I am thinking this will be added to the > activerecord/lib/active_record/relation/query_methods.rb to the WhereChain > class. The missing method will accept an individual or array of > relationships. The resulting scope will have a left join on each relationship > as well as a where clause for each table with the id set nil: > > # New WhereChain method: > Post.where.missing(:author) > > # Equivalent: > Post.left_joins(:author).where(authors: { id: nil }) > > # Resulting sQL > # SELECT "posts".* FROM "posts" LEFT OUTER JOIN "authors" ON "authors"."id" = > "posts"."author_id" WHERE "authors"."id" IS NULL > > > On Wed, Dec 12, 2018 at 4:57 PM DHH <da...@loudthinking.com > <mailto:da...@loudthinking.com>> wrote: > I even like Person.where.missing(:parent). The key distinguisher is to use > modifiers on #where, just like we have with #not, rather than hang these off > the root scope. > > On Tuesday, December 11, 2018 at 3:38:36 PM UTC-8, Joshua Stowers wrote: > This reminds me of another recent topic: > https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-core/wAkJbUb3mio > > <https://groups.google.com/forum/?fromgroups#!topic/rubyonrails-core/wAkJbUb3mio> > They're discussing the idea of adding a presence scope with > `Person.where.present(:name)` > If this method also checks for the presence of associated records like > `Person.where.present(:parent)` then it would make sense to also have a > method that does the opposite (like you're proposing). > Or perhaps it would simply make more sense to instead use > `Person.where.not.present(:parent)`. > > > On Monday, December 10, 2018 at 7:55:51 PM UTC-6, John Pollard wrote: > I definitely find myself looking for orphans to clean up my database. What > about adding a method scope as "missing_#{relationship_name}" > > Book.missing_author #without a parent > > Author.missing_books #without children > > > On Tuesday, November 27, 2018 at 5:41:53 PM UTC-5, Tom Rossi wrote: > Its common for me to look for orphans and I typically do it like this: > > Child.eager_load(:parent).where(parents: { id: nil }) > > I would like to propose putting together a PR for something like this: > > Child.missing(:parent) > Parent.missing(:children) > > Please let me know if others are interested in the functionality and I would > love to give it a shot! > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-core+unsubscr...@googlegroups.com > <mailto:rubyonrails-core+unsubscr...@googlegroups.com>. > To post to this group, send email to rubyonrails-core@googlegroups.com > <mailto:rubyonrails-core@googlegroups.com>. > Visit this group at https://groups.google.com/group/rubyonrails-core > <https://groups.google.com/group/rubyonrails-core>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-core+unsubscr...@googlegroups.com > <mailto:rubyonrails-core+unsubscr...@googlegroups.com>. > To post to this group, send email to rubyonrails-core@googlegroups.com > <mailto:rubyonrails-core@googlegroups.com>. > Visit this group at https://groups.google.com/group/rubyonrails-core > <https://groups.google.com/group/rubyonrails-core>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. -- Kasper -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-core+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-core@googlegroups.com. Visit this group at https://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/d/optout.