仕様をすごく勘違いしてたのでメモに残しておく。
テーブルBがテーブルAに所属している(Bがa_idというカラムを持つ)ならば、
A.joins(:bs).select("as.*, bs.*")
=>a_idで紐付いた一つの大きなテーブルができる
と思っていたが、違う・・・
モデルの定義で、
A has_many: bs
B belongs_to: a
という関係ならば、
A.joins(:bs).select("as.*, bs.*")
または
B.joins(:a).select("as.*, bs.*")
=>A.id = B.a_idで紐付いた一つの大きなテーブルができる
※joinsの引数の複数形、単数形に注意。モデルの定義を参照。
って感じなんすね。
逆でもいけるんだね。