#複数個のテーブルを結合する
①モデル(単数).joins(:②モデル(複数))
①はUser
②Schedule
##前提条件
- Userは、idを持っている
- Scheduleは、user_idを持っている
#joinは、共通項で結合する
Scheduleのテーブルのuser_idとUserのidがマッチしているレコードのみを取得しています。
結合条件にマッチしないレコードは削除されて1つのテーブルを構成します。
#カラムの取得仕方
userのカラムだけ取得
User.joins(:schedules)
両方のカラムを取得
User.joins(:schedules).select("users.*, schedules.*")
##補足
###whereなどのメソッドを使う際
where(モデル名(複数形):{カラム:値})
Userのモデルか?
あるいは、scheduleのモデルかを指定する必要がある
##注意
selectで取得した値はすべて文字列に変更される。
僕の場合は、datetimeが文字列に変更したために、timeメソッドを使えなくなり、time.parseを使用し文字列型からdate型に変更した。
##さいごに
初めての投稿です。分かりづらいところばかりですみませんでした。
少しでも誰かのお役に立てればと思います。