Rails使用param查询对帖子进行排序

时间:2014-01-09 18:13:28

标签: ruby-on-rails sorting ruby-on-rails-4

我希望能够通过User模型轻松排序。因此,在视图中,您可能会看到一些要排序的选项。可选择两个单选按钮,一个用于流行按钮,另一个用于最新按钮。要查找热门用户(根据他们的粉丝数量):

/people?sort=popular

或者你可以选择其他收音机来找到最近的用户:

/people?sort=latest

然后,您可以选择一个复选框(您可以选择多个),例如most posts,以查找帖子最多且最受欢迎的用户:

/people?sort=popular&posts=on

另一个复选框,用于查找可联系的用户(这是存储在用户表中的布尔值)

 /people?sort=popular&posts=on&contactable=on

我希望这是有道理的。当您通过设计师排序时,Dribbble可以很好地完成这项工作。任何人都能指出我正确的方向来实现这一目标吗?谢谢。一旦我对如何完成此操作有了一般性的了解,我就可以添加更多选项来进行排序。此外,我不需要AJAX所以页面刷新每个查询是完全可以的。

2 个答案:

答案 0 :(得分:1)

在Rails中,每个控制器操作都可以访问params哈希。 params散列有很多东西,包括查询字符串中每个项的键/值结构。

因此,在people#index行动中,您将获得以下内容:

params[:sort] #=> value is "popular"
params[:posts] #=> value is  "on"
params[:contactable] #=> value is "on"

您可以将where子句传递给您的用户模型。

答案 1 :(得分:0)

我首先看看这个railscast: http://railscasts.com/episodes/240-search-sort-paginate-with-ajax

然后这个: http://railscasts.com/episodes/340-datatables

这应该为您提供有关如何解决此问题的充分信息和想法。