3

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

我不会解释为什么要这样做,但我想知道是否有一种方法可以指定何时通过 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

谢谢!

4

1 回答 1

3

假设你使用的是 jquery,你可以设置 dataType 选项,即

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

或者

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

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

于 2012-04-21T02:11:08.307 回答