LoginSignup
0
1

More than 3 years have passed since last update.

フォロー機能の実装

Posted at

環境

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

エラー

スクリーンショット 2020-09-08 23.31.00.png
フォローボタンを押すと、
スクリーンショット 2020-09-07 17.28.40.png
やはりエラーと遭遇。

解決の糸口・・・

followingsをfollowingと変更したり、細かな記述を変更しても、エラーから抜けられない。
どこを直せばいいのか分からなかったので、沼にはまってしまう。(実際、このエラーを解決するのに2日費やすことになる。)

解決方法

app/models/relationship.rb

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

結論

基本は重要であることを学びました。
対応してくれたメンターの方、ありがとうございました。

0
1
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
1