用户下拉选择Ruby on Rails索引的排序

时间:2012-05-24 04:56:12

标签: ruby ruby-on-rails-3 web

我看过类似这个问题的事情,但不完全是我正在寻找的东西。在询问之前我确实试图在别处找到它。话虽如此。

我正在创建我的第一个Rails应用。我将举一个简单的例子来证明我的问题:

假设我有模型Employees。

每位员工都有姓名和职位。

当我导航到localhost / Employees / index时,我将获得一份员工列表。我希望用户可以对该索引进行排序。我希望它具有下拉功能,允许用户选择要排序的内容。如果这是PHP,我只需传递用户搜索首选项的参数,然后使用不同的“ORDER BY”值重新加载页面,但我似乎无法确定在rails中从哪里开始这样的事情。 / p>

提前致谢, 瑞恩

2 个答案:

答案 0 :(得分:1)

当用户提交表单时,表单会将 params 哈希传递给控制器​​。一种简单的方法是编辑搜索字段的单独表单。 (如果我的ERB错了,我通常会使用HAML道歉)

你的表格中有这样的东西。它也修改了URL标题。

<%= form_tag(params, :method => :get) do %>
  <%= select_tag(:order_by, options_for_select(SET_OF_ORDERS, params[:order_by])) %>
  <%= submit_tag "Search with parameters" %>

然后在你的控制器中使用你的查找功能中的:order_by param(params [:order_by])。

options_for_select是表单助手。

与往常一样,请确保您对输入进行清理,因为用户可以在URL请求中添加任何内容,而您不希望进行SQL注入。

答案 1 :(得分:1)

嘿如果您喜欢Jquery,那么jquery工具DataTables可以实现这种类型的功能,这些工具可以为您提供更多功能,并为索引页中的表提供良好的CSS。

按照以下链接向您解释如何使用数据表

http://railscasts.com/episodes/340-datatables?view=asciicast

我希望这会对你有所帮助 感谢。