On Thursday, 1 May 2014 at 10:44:42 UTC, Jacob Carlborg wrote:
On 2014-04-30 22:38, Adam D. Ruppe wrote:
I also find myself really missing outer joins and views.
For outer joins:
1. You can always use raw SQL, also in combination with
ActiveRecord
Post.joins(:comments).joins("outer join foos on foos.post_id =
posts.id").where(title: "bar")
2. My preferred choice, using Squeel [1] (another gem). With
Squeel the above would look like this:
Post.joins(:comments).joins{ foos.outer }.where(title: "bar")
You can also use the built-in `includes()`, which does a LEFT
OUTER JOIN:
Post.includes(:comments).where(comments: {title: "bar"})
(It also eager-loads the comments, but this is usually desired
anyway, because an OUTER JOIN doesn't make sense if you're not
going to use the joined records.)