rails4の条件付きアソシエーション

Rails4から条件付きアソシエーションの記述の仕方が変わりconditionsパラメータが非推奨になりました。変わってどう書くのかを以下に記載します。

テーブル同士の関連(1体多など)に条件を追加した場合があります。例えばusersテーブルとcommentsテーブルがあるとして自分のコメントのみ取得したい場合、以下のように記述します。

class User < ActiveRecord::Base
  has_many :my_comments, ->(record) { where(user_id: record.id) }, class_name: Comment

end

使い方は次のようになります。usersテーブルのid=1の方が投稿したコメントを取得したい場合、

user = User.find(1)
user.my_comments

※注意点
ここでclass_name: Comment:my_commentsの後ろにするとエラーになる。順番があるようで、条件付きを入れる場合は最初に書かないと駄目らしい。