Rails 6.0.3.2 ruby 2.6.5p114 (2019-10-01 revision 67812) vscode
https://qiita.com/tenitiumai/items/3d9466d7a24197f690bb Le but est de créer une fonction DM en référence à.
Toutefois, cet article est destiné à vous montrer comment résoudre l'erreur. Je vais omettre la procédure de création d'une fonction DM spécifique (veuillez vous référer à l'article de référence ci-dessus).
Article de référence https://qiita.com/krppppp/items/0db4184e9df553f05048 Cela fait attention à Cannot have a has_many: through association'User # followers 'qui passe par'User # follower_relationships' avant que les associations through ne soient définies. Apparemment, le modèle est placé dans le mauvais ordre. Plus précisément, il peut être déduit qu'une erreur s'est produite car les followers sont chargés avant le chargement des followers_relationships.
En regardant le code,
app/models/user.rb
has_many :followers, through: :follower_relationships
has_many :follower_relationships, foreign_key: "following_id", class_name:
"Relationship", dependent: :destroy
has_many :followings, through: :following_relationships
Et les abonnés sont au-dessus des relations suiveuses. cette
app/models/user.rb
has_many :followings, through: :following_relationships
has_many :follower_relationships, foreign_key: "following_id", class_name:
"Relationship", dependent: :destroy
has_many :followers, through: :follower_relationships
Si tel est le cas, il peut être résolu. Lorsque vous accédez à la page des détails de l'utilisateur où se trouve le bouton DM,
Terminé sans incident.
Je ne m'attendais pas à ce que l'erreur se produise dans l'ordre des modèles. Désormais, je voudrais être conscient de ce point également.
Recommended Posts