У меня проблемы с отображением флеш-сообщения после неудачной отправки формы.
Вот форма:
<%= form_for @question do |q| %>
<p>
<b>Your question</b><br />
<%= q.text_field :title, :size => 48 %>
</p>
<p>
<b>Add more details</b><br />
<%= q.text_area :body, :size => "80x10" %>
</p>
<p>
<%= q.submit %>
</p>
<% end %>
И это часть контроллера, обрабатывающая его:
def create
@question = current_user.questions.build(params[:question])
if @question.save
redirect_to questions_path, :flash => { :success => "Your question was saved!" }
else
flash.now[:alert => "There was a problem when trying to save your question!"]
render 'new'
end
end
Файл шаблона для действия new
не содержит ничего, кроме приведенной выше формы.
В настоящее время я использую этот фрагмент кода (в application.html.erb
) для отображения флэш-сообщений, и онработает для флеш-сообщения после успешного сохранения и перенаправления на index
:
<% flash.each do |k, v| %>
<div class="<%= k %>"><%= v %></div>
<% end %>
Я не смог найти решение этой проблемы сам, поэтому я надеюсь, что более опытная пара глазсмогу сэкономить, как я полагаю, всего несколько минут, чтобы просветить меня.
Спасибо!
PS: Я также попробовал обычный flash[:key => "value"]
, а также render 'new', :flash => {:alert => "There was a problem when trying to save your question!"}