SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

【Ruby on Rails】Railsにおける inverse_ofについて


双方間の関連付けで、異なるオブジェクトを参照しないように指定するオプション。 同様のレコードを見る、のようなイメージ。

Rails 4.1 以降は自動的に付与されるらしいが、関連付けにオプションが増えたりすると自動的につかないケースがある模様。

    has_many :books, -> { order display_order: :asc }, dependent: :destroy, inverse_of: :category

上記のように、orderをかませたりすると効かなくなってしまう。

[rubocop/warning] Rails/InverseOf: Specify an :inverse_of option.

ちなみにrubocopで怒られるエラーは上記。

inverse_ofをつけて対応しましょう。

参考

こちらのqiitaがわかりやすかった。 inverse_of について - Qiita