#環境
Rails 6.0.3.2
ruby 2.6.5p114 (2019-10-01 revision 67812)
vscode
#参考記事
https://qiita.com/Kaisyou/items/86869db6345c9cc1413f
https://qiita.com/search?sort=&q=%E3%83%95%E3%82%A9%E3%83%AD%E3%83%BC%E6%A9%9F%E8%83%BD
#エラー
フォローボタンを押すと、
やはりエラーと遭遇。
#解決の糸口・・・
followingsをfollowingと変更したり、細かな記述を変更しても、エラーから抜けられない。
どこを直せばいいのか分からなかったので、沼にはまってしまう。(実際、このエラーを解決するのに2日費やすことになる。)
#解決方法
class Relationship < ApplicationRecord
belongs_to :user
belongs_to :follower, class_name: 'User'
belongs_to :following, class_name: "User"
validates :follower_id, presence: true
validates :following_id, presence: true
end
この中に今回の沼の元凶があるのだが分かるだろうか?
それはbelongs_to :user
である。
belongs_to を記述することで、userを要求することになってしまった。
今回のfollow機能の場合、followerとfollowerとで事足りるため、belongs_toでuserを要求する必要はないのである。1つのRelationshipにつき、一人のuserを割り当てる必要はないため、今回の場合は2行目は不要となる。
belongs_toの詳細についてはhttps://railsguides.jp/association_basics.html#belongs-to%E9%96%A2%E9%80%A3%E4%BB%98%E3%81%91
#結論
基本は重要であることを学びました。
対応してくれたメンターの方、ありがとうございました。