[RUBY] [Rails] ActiveRecord :: HasManyThrough Order Error in Users # show

environnement

Rails 6.0.3.2 ruby 2.6.5p114 (2019-10-01 revision 67812) vscode

Objectif de cet article

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).

Erreur correspondante

スクリーンショット 2020-09-09 12.51.19.png

Cause d'erreur

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.

Solution

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, スクリーンショット 2020-09-09 13.15.47.png

Terminé sans incident.

en conclusion

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

[Rails] ActiveRecord :: HasManyThrough Order Error in Users # show
Erreur de migration après l'association Activerecord dans l'environnement Rails5 + Docker
Erreur ActiveRecord :: NotNullViolation dans Devise
[Rails] Erreur de validation inattendue dans l'appareil
[Order method] Définit l'ordre des données dans Rails
[Rails] Solution lorsqu'une erreur de migration se produit dans agit-as-taggable-on
[Rails] Afficher les avatars dans les messages à l'aide du stockage actif
Une erreur de serveur interne 500 se produit dans l'environnement de production Rails
[Rails] Classement et pagination par J'aime
Group_by dans Rails
Obtenez des informations de localisation avec Rails et triez par ordre croissant
Organiser les publications par ordre de likes sur Rails (classement)