J'utilise actuellement l'attribution de masse de modèle imbriqué sur l'un de mes modèles. Cela fonctionne, mais j'aimerais pouvoir m'assurer que tous les modèles imbriqués créés appartiennent au même utilisateur.Attributs de substitution pour l'attribution d'une masse de modèle imbriquée
J'ai réussi à mettre en œuvre ce en utilisant la méthode d'alias enchaînant avec:
def contact_attributes_with_user_id=(attributes)
self.contact_attributes_without_user_id = attributes.merge("user_id" => user_id)
end
alias_method_chain :contact_attributes=, :user_id
Maintenant, cela fonctionne très bien, mais cela signifie que je ne peux plus avoir attribuer une protection sur user_id pour le contact - qui pourrait facilement prendre quelqu'un dans le futur.
Quelqu'un peut-il trouver un meilleur moyen?
Excellente idée. Une légère difficulté que je peux voir (et non reflétée dans la question originale) est mes contacts have_many: foos, plutôt que has_one -> appartiennent à. Bien que je puisse facilement l'obtenir par défaut à la valeur du premier foos user_id. – Theozaurus