如何在Rails 3中使用ajax请求请求html页面?

时间:2012-04-21 01:31:20

标签: javascript jquery ruby-on-rails ajax ruby-on-rails-3

我正在尝试让Rails在某些条件下通过ajax请求呈现.html.erb模板。默认情况下,当我发送ajax请求时,我会一直收回.js.erb文件。

我不会理解为什么我这样做,但我想知道是否有一种方法可以指定我何时通过ajax发送请求我希望html内容返回而不是js,或者,如果有一种方法可以在Rails 3.1中重构以下内容:

respond_to do |format|
  format.html
  format.js do
    if params[:page].nil?
      render "home.html.erb"
    else
      render "home.js.erb"
    end
  end
end

谢谢!

1 个答案:

答案 0 :(得分:3)

假设您正在使用jquery,您可以设置dataType选项,即

$.ajax('some/page', {dataType: 'html'})

$.get('some/page', function(){ //callback}, 'html')

将格式添加到网址(即请求'/some/page.html')也应该有效(无论您如何提出请求)