J'ai un objet appelé Review qui: appartient à deux objets: Utilisateurs et Fournisseurs. En d'autres termes, il y a toujours un fournisseur qui écrit un avis pour un fournisseur spécifique.La méthode .build ne veut pas faire les deux _id quand l'objet en a deux: belongs_to ...?
Lorsque j'ai créé une révision, j'ai essayé d'utiliser la méthode .build pour ajouter vraisemblablement la clé foreign_key au moment où le nouvel enregistrement est créé pour review.vendor_id et review.user_id.
Lorsque je mets dans le contrôleur pour examiner l'instruction de construction pour l'ID utilisateur sans un pour capturer l'identifiant du fournisseur, cela fonctionne comme un charme. Lorsque j'ajoute le paramètre vendor_id, l'ID utilisateur reste 'nul'.
Aide? Avis est une ressource imbriquée: les vendeurs/3/commentaires/new
formulaires pour l'examen/nouvelles:
<% form_for [@vendor, @review] do |f| %>
Dans le contrôleur de révision:
def new
@vendor = Vendor.find(params[:vendor_id])
@review = @vendor.reviews.build
#@review = Review.new
end
def create
@vendor = Vendor.find(params[:vendor_id])
@review = @current_analyst.reviews.build params[:review]
if @review.save
flash[:notice] = "Successfully created review."
redirect_to review_path(@review)
else
render :action => 'new'
end
fin
Est-il possible que je ne pouvais pas utiliser le champ caché? Oui, il s'agit d'un fournisseur de ressources imbriqué/3/reviews/new .... est-il possible de faire form_for [@ vendeur, @ review] et de se débarrasser du champ caché? Ce serait parfait! – Angela