Skip to content

Latest commit

 

History

History
29 lines (20 loc) · 795 Bytes

disambiguate-where-in-a-joined-relation.md

File metadata and controls

29 lines (20 loc) · 795 Bytes

Disambiguate Where In A Joined Relation

When you join two tables using ActiveRecord

Post.joins(:author)

You get a relation that involves both of the tables. This allows you to write queries that work off the data in that join.

The primary table in the join is posts. Any column references in a #where call will be assumed to be related to posts. If you want to reference a column on the authors table, you'll need to provide that specificity.

The hash syntax for #where is a great way to do that:

Post.joins(:author).where({ authors: { name: "John Steinbeck" }})

You can also use the string syntax:

Post.joins(:author).where("authors.name = ?", "John Steinbeck")

source