响应格式与rails中的请求不同

时间:2012-01-24 12:58:54

标签: javascript html ruby-on-rails ruby render

我有模板:blabla.haml和2个布局:

  1. layouts/application.js.erb
  2. layouts/application.html.haml
  3. 在控制器中我有render 'blabla.haml'日志:request.xhr? # true

    所以如果我用ajax发送请求,我仍然会得到html答案:text / html和layouts / application.html.haml作为布局

    我该怎么做才能得到正确的答案?

1 个答案:

答案 0 :(得分:0)

在你的控制器中你应该有类似的东西:

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

您也可以使用respond_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.');

});