je les classes de modèle suivants:Rails form_for modèle différent contrôleur
class Upload < ActiveRecord::Base
...
has_many :reviews, :order => "created_at DESC"
...
end
class Review < ActiveRecord::Base
...
belongs_to :upload
belongs_to :user
validates_presence_of :description
...
end
Mon point de vue upload/show a une forme pour capturer un commentaire pour le téléchargement spécifique:
<% form_for(@review) do |f| %>
<%= f.error_messages %>
...
<p>
<%= f.text_area :description, :rows => 5, :cols => 80 %>
</p>
...
<p>
<%= f.submit 'Submit Review' %>
</p>
<% end %>
Lorsque la La validation de la révision échoue. Comment puis-je afficher les messages d'erreur dans le formulaire de révision qui fait partie de la vue de téléchargement?
Mon ReviewController fait ceci:
def créer @review = current_user.reviews.new (params [: revue])
if @review.save
flash[:notice] = 'Review was successfully created.'
redirect_to(@review.upload)
else
render :action => :new
end
fin
Il est évident que render :action => :new
ne fonctionne pas parce que je besoin d'afficher l'action show du UploadsController et non la nouvelle action du ReviewsController.
Je suis assez sûr qu'il y a un moyen simple de le faire, je ne peux pas le comprendre!