Method: ActiveRecord::QueryMethods#references

Defined in:
lib/active_record/relation/query_methods.rb

#references(*table_names) ⇒ Object

Use to indicate that the given table_names are referenced by an SQL string, and should therefore be JOINed in any query rather than loaded separately. This method only works in conjunction with #includes. See #includes for more details.

User.includes(:posts).where("posts.name = 'foo'")
# Doesn't JOIN the posts table, resulting in an error.

User.includes(:posts).where("posts.name = 'foo'").references(:posts)
# Query now knows the string references posts, so adds a JOIN


167
168
169
170
# File 'lib/active_record/relation/query_methods.rb', line 167

def references(*table_names)
  check_if_method_has_arguments!(:references, table_names)
  spawn.references!(*table_names)
end