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
355 356 357 358 |
# File 'lib/active_record/relation/query_methods.rb', line 355 def references(*table_names) check_if_method_has_arguments!(__callee__, table_names) spawn.references!(*table_names) end |