J'ai un modèle d'utilisateur qui a beaucoup d'articles. Une évaluation appartient à un utilisateur et à un article.Pourquoi cet appel de création associé ne fonctionne-t-il pas?
Dans la base de données, j'ai défini ratings.user_id comme n'étant pas NULL.
quand je suis en train de créer un élément, je voudrais faire:
def create
current_user.items.create(params[:item]).ratings.create(params[:rating]
redirect_to items_path
end
Cependant, cette renâcle avec une erreur SQL « user_id ne peut pas être nul »
donc je Réécriture de la méthode de création comme
def create
current_user.items.create(params[:item]).ratings.create(params[:rating].merge({:user_id => current_user}))
redirect_to items_path
end
qui fonctionne bien.
Cependant, j'avais pensé que chaîner les méthodes de création sur le récepteur de l'utilisateur actuel aurait peuplé user_id de la note. Quelqu'un sait pourquoi pas?
TIA.
merci Jeremy. Je vais essayer ça. Un peu d'une question de débutant je réalise. –
Je me demandais juste: est-ce que la note n'appartient pas à un objet, n'a pas beaucoup d'objets? –
oui vous avez raison, je ne pensais pas beaucoup à propos de cette ligne que je voulais juste vous donner l'exemple suivant: par exemple – Jeremy