如何从Ruby on Rails中的angularjs $位置获取URL参数?

时间:2017-05-16 08:27:40

标签: ruby-on-rails angularjs

我在轨道上使用ruby显示一个数据库表,每当我点击列标题时我都想对列进行排序。 我的想法是调用一个angularjs函数,它将一个像hnei这样的参数添加到url中,并将它放回我的ruby控制器中以执行有序请求,但它似乎无法正常工作。

以下是我调用函数的users.html.haml文件的一部分:

?sort_by=id

我的angularjs函数(users.controller.js):

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

users_controller.rb中的索引函数

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

当我点击该按钮时,它会在网址中重新加载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 的网页并调用索引功能,但?sort_by=product仍会返回puts params

我该如何使这项工作? 提前谢谢。

1 个答案:

答案 0 :(得分: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中的index方法中:

  puts request.params['sort_by'] if !request.params['sort_by'].nil?