0

rails.i は初めてです。ドロップダウン リストから値を選択して、jquery を使用してコンテンツを並べ替えたいと考えています。jqueryを使用して特定のコントローラーアクションにフォームを送信するのに問題があります。多くの製品を持つカテゴリ モデルがあります。私のカテゴリ ショーでは、次のようなフォームがあります。

    <%= form_for(:category, :url => sort_category_path, method: 'GET', :class=> " form-inline pull-left") do |f| %>
              Sort By :
              <select id ="sort" name= "order_by">
                <option>Default</option>
                <option>Name</option>
                <option>Pirce</option>

              </select>
  <%end%>

このフォームでは、 :category の意味がわかりません。フォームを送信するためのJquery:

  $('select#sort').change(
function(e){

    $(this).closest('form').trigger('submit');

});

次に、私のカテゴリコントローラーには、次のような sort_item アクションがあります。

  def sort_item
   @category_sort = Category.find(params[:id])

   @products = @category_sort.products.order("#{params[:order_by].to_s} ASC")
  end

リクエストに対するレスポンスの送信方法がわかりません。サーバーログには次のように書かれています:

2013-11-11 12:53:49 +0600 で 127.0.0.1 の GET "/en/categories/tshart/sort_item?utf8=%E2%9C%93&order_by=Pirce" を開始しました HTML パラメータとして CategoriesController#sort_item による処理: { "utf8"=>"✓", "order_by"=>"Pirce", "locale"=>"en", "id"=>"tshart"} カテゴリの読み込み (0.3ms) SELECT categories.* FROM categoriesWHERE categories. slug= 'tshart' LIMIT 1

http://test.com/en/categories/tshartにリダイレクト されました :find_category がレンダリングまたはリダイレクトされたため、フィルター チェーンが停止しました

test.com は localhost:3000 の略であることに注意してください。

ここで何が間違っているのか知りたいのですが、並べ替えが機能しないのはなぜですか、または並べ替えタスクを達成するためのより良い方法はありますか?

私を助けてください 。前もって感謝します。

4

2 に答える 2

0

うわー、今働いています。先ほど説明したルーティングの問題でした。問題は次のとおりです。

http://test.com/en/categories/tshartにリダイレクトされました :find_category がレンダリングまたはリダイレクトされたため、フィルター チェーンが停止しました

ここで、リクエストが別のアクションにリダイレクトされ、フィルター チェーンを削除してから、render :show をカテゴリ コントローラーの sort_item アクションに追加しました。今はちょうど揺れています。他のすべては同じままです。

この質問が他の人に役立つことを願っています。

助けてくれてありがとう@jai。

于 2013-11-11T10:00:58.643 に答える
0

changeイベントをdoc readyハンドラーに入れてみてください:

$(function(){ // <----enclosed in document ready
    $('select#sort').change(function(e){
       $(this).closest('form').trigger('submit');
    });
});

これは、dom が要素の js イベント実行バインドの準備ができているかどうかを調べます。

于 2013-11-11T07:28:07.747 に答える