[RUBY] Soyez prudent lorsque vous utilisez plusieurs articles

Nombre d'articles de référence

Qiita a de nombreux articles attrayants, j'ai donc tendance à me référer à de nombreux articles. Cependant, comme il existe différentes façons d'écrire selon l'article, si vous faites référence à plusieurs articles sans en comprendre le contenu, cela a tendance à provoquer une erreur. Par conséquent, lors de la mise en œuvre d'une fonction, un seul article doit être mentionné.

Si vous faites référence à plusieurs articles ...

Par exemple, si vous souhaitez créer une fonction DM https://qiita.com/tenitiumai/items/3d9466d7a24197f690bb  Supposons que vous en ayez parlé.

model/message.rb


class Message < ApplicationRecord
  belongs_to :user
  belongs_to :room
end

Supposons que vous ayez un code comme celui-ci dans user.rb dans l'article ci-dessus. Cependant, parce que j'ai fait référence à un autre article, en réalité

model/message.rb


class User < ApplicationRecord
  validate :messages, presence: true
  has_many :messages, dependent: :destroy
  has_many :entries, dependent: :destroy
end

Supposons qu'il soit décrit comme.

Même si celui-ci ne fonctionne pas, si vous continuez à écrire plusieurs codes inutiles, cela provoquera des erreurs inattendues. Il n'est pas nécessaire de lier les messages avec valider ici. C'est parce qu'il est étrange d'écrire du code qui demande toujours un message même s'il s'agit d'un modèle de message.

models/user.rb


  has_many :comments, dependent: :destroy 
  has_many :entries, dependent: :destroy
  has_many :messages, dependent: :destroy
  has_many :rooms, dependent: :destroy

Cela a également une partie inutile. Dans la fonction DM, l'utilisateur arrive dans la salle via les entrées de table intermédiaires, il n'est donc pas nécessaire d'écrire has_many: rooms. Comme mentionné ci-dessus, lorsque le code s'accumule inutilement![Screenshot 2020-09-09 14.20.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com /0/650686/c6603d57-f746-46bb-14cd-7ba85f39fa7b.png) Vous obtiendrez une erreur comme celle-ci. En particulier, la partie modèle est la base de la création de contrôleurs et d'acitons, il est donc prudent de s'abstenir autant que possible d'écrire du code inutile sur la page modèle.

Résumé

Cette erreur est due à une mauvaise compréhension des bases. Il est facile pour les débutants de le faire, il est donc prudent de le garder aussi un que possible en se référant à l'article (bien qu'il soit correct de se référer à plusieurs si vous pouvez comprendre les bases ...).

Recommended Posts

Soyez prudent lorsque vous utilisez plusieurs articles
Faites attention au moment d'initialisation lors de l'utilisation de MessageEncryptor avec Rails 5.2 / 6.0
Points à prendre en compte lors de la mise à niveau de Tomcat sur un système Web utilisant Oracle
Soyez prudent lorsque vous omettez le retour dans Ruby
Soyez prudent avec les demandes et les réponses lors de l'utilisation de Serverless Framework avec Java
[Rails] Lorsque vous utilisez ajax, faites attention aux "mesures CSRF".
[Java10] Veillez à utiliser ensemble var et génériques
Erreur lors de l'utilisation des rails capybara
Conseils détaillés lors de l'utilisation de Rails