0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rails/InverseOfの謎 activerecord関係 忘却録

Posted at

##はじめに
この記事は自分のために書く忘却録である
また初学者が記載しているため不備があると思われるが指摘していただけると幸いです。
また違う実装方法の提案や助言など嬉しく思いますのでコメントに記載していただけると幸いです。

背景

rails : 6.1.6
ruby : 3.1.1p18

フォロー機能の追加をする際に出現した
課題をしている際にrubocop上に下記のような警告が出現
Rails/InverseOf: Specify an :inverse_of option.

全く検討がつかなかったのでドキュメントを確認したところrailsの公式ドキュメント(3.5 双方向関連付け)でこのような記載がある
Active Recordは、:throughや:foreign_keyオプションを使う双方向関連付けを自動認識しません。関連付けの反対側でカスタムスコープが使われていると、同様に自動認識しなくなります。 また、関連付け自身でカスタムスコープが使われている場合も、config.active_record.automatic_scope_inversingをtrueに設定しない限り自動認識しません
Active Recordが提供している:inverse_ofオプションを使うと、双方向の関連付けを明示的に宣言できます。
今回の機能追加で双方向の関連付けをしたがActive Record側では関連付けが認識されていないとのこと。
認識して欲しければオプションを記載しなさいというrubocopの警告でした。
解決方法は上記のドキュメントに記載されていたのでそちらを見るように

## まとめ
Active Record側で関連付けが認識されていないから認識させるためのオプションを追記してとのこと

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?