2017-05-16 15 views
1

ruby​​ on railsを使ってデータベーステーブルを表示しています。カラムタイトルをクリックするたびにカラムをソートしたいと思います。 私の考えは、URLに?sort_by=idのようなパラメータを追加して、注文した要求を行うためにルビーコントローラに戻すanglejs関数を呼び出すことでしたが、動作していないようです。

%th 
    %button{'ng-click': 'sort_by("product")'} 

マイangularjs機能(users.controller.js):

$scope.sort_by = function(str){ 
    $location.search({sort_by: 'product'}); 
    $window.location.reload(); 
} 

とインデックス機能でここ

は、関数を呼び出す私のusers.html.hamlファイルの一部であります

def index 
    @users = User.all 
    max_per_page = 50 
    puts params 
    paginate @users.size, max_per_page do |limit, offset| 
    render json: @users.limit(limit).offset(offset) 
    end 
end 

私はボタンをクリックすると、それはでページを再読み込みしusers_controller.rbURL内にあり、インデックス関数を呼び出しますが、puts paramsはまだ返されます{"subdomain"=>"admin", "controller"=>"admin/users", "action"=>"index"}

どうすればこの作業を行うことができますか? ありがとうございます。

答えて

0

は私がのparamsと$ HTTP GETリクエストを使用し、それが最終的にはそれが助け場合には、働いていた誰か:

   $http({ 
        method: 'GET', 
        url: 'users', 
        dataType: 'json', 
        params: { 
         'sort_by': 'products.name', 
        }, 
        headers: { 
         "Content-Type": "application/json" 
        } 
       }).success(function(response){ 
        console.log('succes'); 
       }).error(function(error){ 
        console.log('err'); 
       }); 

、その後users_controller.rbのインデックスメソッドで:

puts request.params['sort_by'] if !request.params['sort_by'].nil? 
関連する問題