У меня есть следующие классы моделей:
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
В моем представлении загрузки / показа есть форма для захвата обзора для конкретной загрузки:
<% 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 %>
При сбое проверки рецензии, как отобразить сообщения об ошибках в форме рецензии, являющейся частью представления загрузки / показа?
Мой ReviewController делает это:
def create
@review = current_user.reviews.new (params [: обзор])
if @review.save
flash[:notice] = 'Review was successfully created.'
redirect_to( @review.upload )
else
render :action => :new
end
конец
Очевидно, render :action => :new
не работает, потому что мне нужно отобразить действие show в UploadsController, а не новое действие ReviewsController.
Я почти уверен, что есть простой способ сделать это, я просто не могу понять это!