Skip to content

Instantly share code, notes, and snippets.

@xab3r
Forked from slayer/gist:935641
Created June 9, 2014 16:38
Show Gist options
  • Save xab3r/7356fbf78d748247fde8 to your computer and use it in GitHub Desktop.
Save xab3r/7356fbf78d748247fde8 to your computer and use it in GitHub Desktop.
# Simple JOIN
User.joins(:account) # User -> Account
# Will produce
# SELECT `users`.* FROM `users` INNER JOIN `accounts` ON `accounts`.`user_id` = `users`.`id`
# Complicated JOIN
Trait.joins(:user => :account) # Trait -> User -> Account
# Will produce
# SELECT `traits`.* FROM `traits` INNER JOIN `users` ON `users`.`id` = `traits`.`user_id` INNER JOIN `accounts` ON `accounts`.`user_id` = `users`.`id`
# And more complicated JOIN
Completion.joins(:trait => {:user => :account}) # Completion -> Trait -> User -> Account
# Will produce
# SELECT `completions`.* FROM `completions` INNER JOIN `traits` ON `traits`.`id` = `completions`.`trait_id` INNER JOIN `users` ON `users`.`id` = `traits`.`user_id` INNER JOIN `accounts` ON `accounts`.`user_id` = `users`.`id`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment