1

非AJAXWebアプリでは、URLにビューパラメーターが含まれます(例:mysite?page = 2&sort = name)。AJAXアプリで、同じ情報をどこに保存しますか?Sessionオブジェクトでは?

4

2 に答える 2

3

AJAX呼び出しで追加のパラメーターを渡す方法を知りたいと思います。これは、AJAX呼び出しをどのように作成しているかによって異なります。

組み込みのRailsヘルパーを使用している場合は、url_forヘルパー内に追加のパラメーターを渡すことができます。たとえば、productsルートがあり、すべての製品のリストをAJAXでロードしたいとします。ヘルパーは次のlink_toようになります(Rails 3.2)

link_to "All Products", products_path(:page => 2, :sort => "name"), :remote => true

一方、jQueryなどのJavaScriptフレームワークを使用している場合は、オプションを使用して追加のパラメーターを渡すことができdataます。例えば

$.ajax({
    url: "/products",
    data: {
        page: 2,
        sort: "name"
    },
    success: function(data) {
        // handle success
    },
    failure: function(data) {
        // handle failure
    }
 });

このデータ(ページ、並べ替えなど)の保存は、複数の方法で実行することもできます。最も簡単な方法は、このデータをJavaScript変数内に格納することです。

window.page = 2;
window.sort = "name";

data別の解決策は、この情報をページ上の特定のDOM要素の属性に格納することです。たとえば<div id='products'>、ページ化され、並べ替えられた商品のリストを含むがあれば、次のような情報を保存できます(jQuery)

$("#products").data("page", 2);
$("#products").data("sort", "name");
于 2012-06-12T14:07:57.593 に答える
0

一般的に言って、RailsのAJAXに対して異なる方法でリクエストを構成することはありません。リンクまたはフォームに属性を追加して:remote => trueから、コントローラーアクションをrespond_tojsにします。

respond_to do |format|
  format.js
end

次に、your_action.js.erbをビューに配置し、適切な方法でdomを更新するjavascriptを記述します。

于 2012-06-12T13:42:26.173 に答える