@ledsun blog

無味の味は佳境に入らざればすなわち知れず

ActiveRecordでjoinする練習

Railsをcloneしてきたリポジトリirbを使って練習します。

~ bundle exec irb -r active_record
class Organization < ActiveRecord::Base; end
class User < ActiveRecord::Base; belongs_to :organization; end
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Schema.define do
  create_table(:organizations, force: true)
  create_table(:users, force: true)
end
irb(main):046:0> User.joins(:organization).to_sql
=> "SELECT \"users\".* FROM \"users\" INNER JOIN \"organizations\" ON \"organizations\".\"id\" = \"users\".\"organization_id\""

joinするだけなら、テーブル定義上の外部参照は必要ないです。