Использование респондентов с response_with, который занимает блок

Я запускал rails 3.2.1 и использовал ответчики rails 3, а также флэш-ответчик, доступный в геме ответчиков: https://github.com/plataformatec/responders

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

class MyController < ActionController::Base
  responders :flash
  respond_to :html

  def create
    @my_object = MyObject.create(params[:my_object])
    respond_with @my_object do |format|
      format.html { redirect_to :back }
    end
  end
end

Это прекрасно работает в rails 3.2.1, но, похоже, перестало работать в 3.2.2, похоже, были некоторые изменения в том, как response_with функционирует при взятии блока. Конкретно этот патч: https://github.com/rails/rails/pull/4870/files

Мне было интересно, есть ли способ добиться такого же поведения и использовать флэш-ответчик для установки флэш-сообщений (я не хочу делать это вручную).

2 ответа

Решение

Оказалось ошибка в рельсах 3.2.2 https://github.com/rails/rails/pull/5299

Вам нужно создать свой собственный респондент, чтобы все время выполнять перенаправление и включать его в свой контроллер.

Респондент похож на Rack::Middleware. Вы можете накопить это.

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