перенаправление, чтобы не заполнять flash

#ruby-on-rails

#ruby-on-rails

Вопрос:

У меня есть эти два метода:

 def set_asset
    @asset = current_user.assets.find(params[:id])

    rescue ActiveRecord::RecordNotFound
        redirect_to assets_url, notice: 'resource does not exist'
end

def get
    send_file @asset.uploaded_file.path, type: @asset.uploaded_file_content_type

    rescue ActionController::MissingFile
        redirect_to assets_url, notice: 'missing file'
end
  

В случае возникновения отсутствующего файла или RecordNotFound блоки восстановления в этих методах успешно перенаправляются на путь assets_url . Однако flash не установлен (я его отладил)!

Почему это может происходить. Я пробовал flash.now[:notice] = и это тоже не работает (хотя это следует использовать только при рендеринге другого представления)…

Обновить

Прямо сейчас это все, что содержит мое представление assets / index.html.haml:

 = debug flash
  

И он постоянно пуст

Комментарии:

1. Можете ли вы добавить представления, в которых flash, похоже, не отображается, то есть ваше assets_url представление?

2. Никогда не делайте этого. НИКОГДА. спасательные исключения. Если вы знаете, что что-то выйдет из строя, предотвратите это, никогда не спасайте 🙂

Ответ №1:

Controller.rb

 flash[:notice] = "resource does not exist"
  

Вид

 -flash.each do |name, msg|
  = label_tag msg