3

.html.erb特定の条件下で、Railsがajaxリクエストを介してテンプレートをレンダリングしようとしています。デフォルトでは.js.erb、ajaxリクエストを送信するとファイルが返され続けます。

なぜこれを行うのかはわかりませんが、ajaxを介してリクエストを送信するときに、jsではなくhtmlコンテンツを返すように指定する方法があるのか​​、それともあるのか疑問に思っていました。 Rails3.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 に答える