Перенаправление после успешной формы ajax

У меня есть форма с remote => true. И прямо сейчас мой контроллер выглядит как :

  # POST /items
  # POST /items.json
  def create
    @item = @store.items.build(params[:item])

    respond_to do |format|
      if @item.save
        format.html { redirect_to edit_admin_item_path(@item), :flash => {:success => "#{@item.name} was successfully created."} }
        format.js { render :js => "window.location.href = ('#{edit_admin_item_path(@item)}');"}
        format.json { render json: @item, status: :created, location: @item }
      else
        format.html { render action: "new" }
        format.js { render :partial => 'fail_create.js.erb', :locals => { :ajax_errors => @item.errors.full_messages } }
        format.json { render json: @item.errors, status: :unprocessable_entity }       
      end
    end
  end

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

В идеале мне кажется, что я должен иметь возможность просто использовать "format.js { перенаправить _на...} или проверить заголовки запроса и перенаправить _на. Блин!

Я не уверен, что это лучшее решение.Любой совет будет очень классным, заранее спасибо!

-- PS --Я знаю, что об этом уже спрашивали, но безрезультатно:Как перенаправить после успешной отправки формы AJAX Кажется, много похожих вопросов витает вокруг, но реальных решений нет.

10
задан Community 23 May 2017 в 11:57
поделиться