Почему мой Flash.now не выводится после рендеринга?

У меня есть небольшая проблема, которую я не могу понять.

Обычная вспышка работает как положено.

      flash[:test] = 'Blarrgh'
redirect_to etcs_url

Будет отображаться «Blarrgh», так как у меня есть этот код в моем application.html.erb

            <% if flash[:test] %>
        <%= flash[:test] %>
      <% elsif flash.now[:test] %>
        <%= flash.now[:test] %>
      <% end %>

Я почти уверен, что способ отображения сообщений flash.now[:test] — это просто flash[:test], но я добавил elsif внизу на всякий случай, поскольку что-то не работает.

Почему-то, когда я делаю

      flash.now[:test] = 'Blarrgh'
render :edit

Вообще ничего не появляется. Но когда я помещаю в свое представление оператор «сбой», затем проверяю значения, flash[:test]/flash.now[:test] будут иметь правильные значения. Например, ['И т. д. не может быть пустым']

Я попытался проверить распространенные ошибки: нет токена CSRF, скрытое перенаправление, рендеринг flash.now b4, использование form_with без local:true, но, глядя на мои журналы, такой проблемы нет. Я включил токен CSRF, и мой путь к журналу

      In logs:
patch /etc/1
(Commit fails, rolls back)
renders application.html.erb which yields etcs/edit.html.erb which renders etcs/_form.html.erb, then renders rest of etcs/edit.html.erb

И ставлю свой flash.now b4 на рендер. Я также не использую вспомогательные функции Rails, такие как form_with.

0 ответов

Другие вопросы по тегам