рендеринг html вместо js для ajax-запроса в Rails - PullRequest
1 голос
/ 05 сентября 2011

У меня есть следующие действия контроллера:

  def create
     @board = Board.new(params[:board])
      respond_to do |format|
        if @board.save
          set_board_session @board
          set_new_board
           format.js   { render :action => "show" } #<== here I want to render html no js
        else
           format.js  { render :action => "new" }
        end
      end
  end

Я хочу сделать действие show.html.erb, а не действие show.js.erb для запроса ajax.

Как я могу это сделать?

UPDATE

Мне кажется, это работает:

Я поместил это в свой контроллер приложения:

def redirect_to(options = {}, response_status = {})
      if request.xhr?
        render(:show) {|page| page.redirect_to(options)}
      else
        super(options, response_status)
      end
    end

Теперь я могу перенаправить вызов Ajax.

 format.js {redirect_to @board}

Благодаря этому форуму :

Ответы [ 2 ]

1 голос
/ 05 сентября 2011

Установите dataType на "html" в вашем запросе AJAX, и Rails будет правильно обрабатывать запрос AJAX и отображать html, а не js.

0 голосов
/ 06 сентября 2011

Мне кажется, это работает:

Я поместил это в свой контроллер приложения:

def redirect_to(options = {}, response_status = {})
      if request.xhr?
        render(:show) {|page| page.redirect_to(options)}
      else
        super(options, response_status)
      end
    end

Теперь я могу перенаправить вызов Ajax.

 format.js {redirect_to @board}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...