Skip to content
Snippets Groups Projects
Commit f1321b1e authored by Alex Reisner's avatar Alex Reisner
Browse files

Merge pull request #488 from eliotsykes/patch-3

Describe preload+joins option for overcoming includes issue.
parents ab19ff71 42ef4473
No related branches found
No related tags found
No related merge requests found
......@@ -740,10 +740,17 @@ When reporting an issue, please list the version of Geocoder you are using and a
Known Issue
-----------
You cannot use the `near` scope with another scope that provides an `includes` option because the `SELECT` clause generated by `near` will overwrite it (or vice versa). Instead, try using `joins` and pass a `:select` option to the `near` scope to get the columns you want. For example:
You cannot use the `near` scope with another scope that provides an `includes` option because the `SELECT` clause generated by `near` will overwrite it (or vice versa).
# instead of City.near(...).includes(:venues)
Instead of using `includes` to reduce the number of database queries, try using `joins` with either the `:select` option or a call to `preload`. Both choices are demonstrated below:
# Pass a :select option to the near scope to get the columns you want.
# Instead of City.near(...).includes(:venues), try:
City.near("Omaha, NE", 20, :select => "cities.*, venues.*").joins(:venues)
# This preload call will normally trigger 2 queries regardless of the number of results; one query
# on hotels, and one query on administrators. Instead of Hotel.near(...).includes(:administrator), try:
Hotel.near("London, UK", 50).joins(:administrator).preload(:administrator)
If anyone has a more elegant solution to this problem I am very interested in seeing it.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment