Getting scoped results to include joined tables

For some reason, I cannot get my scoped results to include the attributes from a joins table. I’ve got a stores table which belongs_to a system_address table (has_one store) and I’ve tried:

scope :with_address, -> {
  joins(:system_address).select("store.*, system_address.*")
}

and

scope :with_address, -> {
  joins(:system_address).includes(:system_address)
}

and I still only get the stores table attributes.

Any suggestions as to what I’m missing?

Your use case here doesn’t require the joins method. You only need that if you intend to use fields on the table you are joining to in your query.

includes(:system_address) should do what you want. The resuling Store models will not have columns from the SystemAddrress model available directly but accessing .system_address on an instance of Store will not incur another round trip to the database. The addresses returned in that query have been eager-loaded.

OK; thanks @derekprior; much appreciated! That works.