最近涼しくなってきましたねー...と思ったら次の日は暑かったりで体を壊しそうになります。(2週間前にすでに壊した)今日は最近コードをレビューする機会があって、多対多のアソシエーションをうまいこと設定できていなくて指摘したかったものの、どうやって設定するか微妙に調べることになったのでもう忘れないようにブログにしておこうと思った次第。:blogend多対多の関連がある時はthroughオプションをつけてあげると中間テーブルを経由して関連先のモデルを取得できるようになります。throughをつけないと中間テーブルの先のレコードを取得するのが一手間必要になり微妙なので設定するのが吉です。設定しない場合の取得方法はあくまで例ですが何かしら下処理が必要になってしまいます...で、それならuserにもthroughを設定してblogを取得できるようにしたらいーじゃん!ってなりますよね。今回はblogとuserにはすでにアソシエーションが存在します。こんな時は別名をつけてあげれば良いのです!多対多で中間テーブルの先のモデルとアソシエーションするこんな感じで実現できます。:blogendsourceオプションを設定することでuser.favorite_blogsでuserがお気に入りしたブログを一気に取得することができます。Railsは外部キーの名前などでアソシエーションの判断をしていますが、アソシエーションの名前を外部キーの名前から外れた名前にする場合はそれをオプションをつけて教えてあげる必要があります。sourceオプションがthroughする際にアクセスすべきモデルを教えるオプションとなります。以下省略endみたいな感じで、このアソシエーションはどこのモデルとのアソシエーションなのか、どの外部キーを用いるのかをオプションで明示する必要があります。GAMEを見てるとみんな才能があって素敵に思う。23:58【Rails】多対多のアソシエーションに別名をつけたいあなたにTweet関連記事2018-04-21【Rails】ActiveStorageを使ってお手軽にファイルアップロードを試す最近ぼちぼちアウトプットしようとせこせこインプットしていま...2016-05-05RSpecの基本的な部分を勉強してみたブログだいぶサボってました...。LambdaでSinatraを動かしてみるプログラミングスクール勤めのエンジニアが転職するってよ月別アーカイブはてなブログをはじめよう!kimurayspさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。