Формат ответа отличается от запроса в рельсах - PullRequest
0 голосов
/ 24 января 2012

У меня есть шаблон: blabla.haml И 2 макета:

  1. layouts/application.js.erb
  2. layouts/application.html.haml

В контроллере у меня есть render 'blabla.haml' В журнале: request.xhr? # true

Так что, если я отправлю запрос с помощью ajax, я все равно получу ответ в формате html: text / html и layouts / application.html.haml в качестве макета

Что я должен сделать, чтобы получить правильный ответ JS?

1 Ответ

0 голосов
/ 24 января 2012

в вашем контроллере у вас должно быть что-то вроде:

class UsersController < ApplicationController::Base
  def index
   respond_to do |format|
    format.js { }
    format.html {}
   end
  end
 end

вы могли бы также реализовать это с response_with что-то вроде:

class UsersController < ApplicationController::Base

  respond_to :html, :xml, :json

  def index
    respond_with(@users = User.all)
  end

  def create
   @user = User.create(params[:user])
   respond_with(@user, :location => users_url)
  end
end

или даже в вашем ajax-запросе, например, с помощью jquery ($ .ajax, $ .get, $ .post, $ .getScript и т. Д.) Вы можете принудительно задать тип содержимого, например:

$.getScript('ajax/test.js', function(data, textStatus){
  console.log(data); //data returned
  console.log(textStatus); //success
  console.log('Load was performed.');

}); * * 1 010

...