Rails: при перенаправлении на ту же форму страницы, отправленную с, флэш-сообщение не отображается - PullRequest
2 голосов
/ 03 декабря 2011

при отправке формы для «создания» действия в sexes_controller, я изменил вещи, чтобы фактически перенаправить обратно к просмотрам страниц / результатам / индексу, с которых была отправлена ​​форма, но теперь флэш-сообщение не отображается, хотя я делаю

<%= flash[:notice] %>

в нижней части представлений / результатов / индекса (то есть страницы, с которой была отправлена ​​форма), что, как я полагаю, вы должны сделать это.

Это происходит из-за того, что происходит какое-то кеширование, когда флэш-сообщение не отображается? Есть идеи как обойти это?

Обновление

думая, что это может быть сложнее, я попытался получить флэш-сообщение в действии index контроллера результатов

@flashbash = Sex.find(params[:id])

и затем обратно в представления / результаты / индекс

<%= if @flashbash flash[:notice] %>  (I think this code is wonky)

заметьте, я пробовал это, но это не сработало. Он сказал, Couldn't find Sex without an ID

Есть идеи, как я могу это исправить?

1 Ответ

6 голосов
/ 04 декабря 2011

Обычно флэш-память отображается в файле макета приложения. Это позволяет избежать дублирования при выводе <% = flash [: note]%> в каждом представлении, которое потенциально может иметь флэш-сообщение.

Относительно того, почему он не отображается, проверьте, что вы устанавливаете переменную flash [: note] для отображения чего-либо. Пример действия create в контроллере может выглядеть так:

# app/controllers/sex_controller.rb
def create
  @sex = Sex.new(params[:sex])
  if @sex.save
    flash[:notice] = "Saved successfully"
    redirect_to @sex # This redirects to the show action, where the flash will be displayed
  else
    flash[:error] = "There were errors..."
    render :action => :new # This displays the new form again
  end
end

# app/layouts/application.html.erb
<html>
  ...
  <%= flash[:notice] %>
  <%= flash[:error] %>
  <%= yield %>
  ...
</html>

Больше информации о флеш-сообщениях здесь: http://guides.rubyonrails.org/action_controller_overview.html#the-flash

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...