Je pense que vérifier l'existence de destinations liées du côté appartient_à
est nécessaire dans de nombreux cas, mais j'ai rarement rencontré la vérification de l'existence de destinations associées du côté has_many
, alors je l'ai vérifié.
Association modèle utilisateur et modèle d'équipe. Cependant, avec les restrictions suivantes.
↓ C'est l'association.
Rails 6.0.3 Ruby 2.7.1 mysql2 0.5.3
class Team < ApplicationRecord
belongs_to :user
end
C'est tout ce dont vous avez besoin pour le modèle de poteau. Lorsque vous écrivez appartient_to, ʻoptional: false` est appliqué par défaut. Ceci impose la contrainte "la publication doit toujours être associée à l'utilisateur".
Au contraire, si vous souhaitez créer une "publication qui n'est pas liée à un utilisateur",
class Team < ApplicationRecord
belongs_to :user, optional: true
end
Ce n'est pas grave si vous l'écrivez comme ça. ʻOptional: true` ne doit pas nécessairement être associé à l'utilisateur.
class User < ApplicationRecord
has_many :teams
validates :teams, presence: true
end
Du côté has_many
, si vous souhaitez vérifier l'existence de destinations associées, vous devez ajouter une validation.
Si vous postulez comme ci-dessus, vous serez limité à "vous devez avoir au moins une équipe".
J'espère que cela aide quelqu'un.
Recommended Posts