使用Ajax调用渲染Flash消息

时间:2016-10-03 16:34:20

标签: jquery ruby-on-rails ajax flash-message

我进行删除对象的ajax调用。一切正常,但现在我需要它显示一条flash消息,让用户知道该对象已被删除。我似乎无法找到一种简单的方法。这是我的代码。

CONTROLLER

    def destroy
    DestroySnitch.perform(snitch: @snitch)

    respond_to do |format|
      format.html do
        redirect_to snitches_path, notice: "Snitch was successfully deleted."
      end
      format.json do
        render json: [], status: :no_content
      end
    end
  end

AJAX

    $(document).on('click','.destroy-snitch', function(event) {
  var snitchID = $(this).attr('data-snitch-id');
  $.ajax({
    dataType: 'json',
    type: 'DELETE',
    url: '/snitches/' + snitchID,
    success: function(){
      $('#tr-for-snitch-' + snitchID).fadeOut();
    }
  });

  $('.modal').modal('hide');

  $('.jquery-modal.blocker').hide();

  event.preventDefault();
});

如果您需要查看其他内容,请告诉我们?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

如果通过AJAX调用它,可能是以JSON身份请求。如果请求来自JSON,那么它不会重定向它,但会发送消息。

您需要的只是处理AJAX回调,消息和重定向!

def destroy
   DestroySnitch.perform(snitch: @snitch)

  respond_to do |format|
    format.html {redirect_to snitches_path, notice: "Snitch was successfully deleted."}
    format.json {render json: message: "DELETED COOL", status: :no_content} 
  end
end