0

私はRORアプリに取り組んでいます。アプリ ビューには ajax と jquery コードが含まれています。

jQuery.ajax({
  data:     'val=' + val,
  dataType: 'script',
  type:     'post',
  url:      "/portfolio/update"
});

update アクションには次のコードが含まれます。

def update
  j = params[:val]

  # Buisness logic code
  redirect_to root_url, notice: "update done"
end

現在のビューとルート URL は同じです - ポートフォリオ/表示 ビューのボタン (root_url のみ) はビジネス ロジックを正常に実行していますが、ページは更新されていませんが、ビューの他の単純なフォーム ボタンはそれを実行しています。ボタンを押した後、レールサーバーでこれを取得しています:

Rendered portfolio/show.erb (1.5ms)
Completed 200 OK in 24ms (Views: 4.1ms)

推測ですが、ページはそれ自体では更新されません。

4

2 に答える 2

1

推測は必要ありません。コントローラーが間違ったタイプで応答しました。

redirect_tohtml 応答の下でのみ機能します。リクエスト タイプが「script」、つまり「js」の場合、何もレンダリングできません。

それを修正するには

def update
  # blah blah
  respond_to |format|
    format.html { redirect_to some_path }
    format.js # This will render default js template views/portfolio/update.js.erb
  end
end

次に、js テンプレートを準備します。

$('#div_to_update').html('new html code to update the view')
于 2013-08-27T18:50:32.023 に答える