如何在rails中对表列进行排序

时间:2014-12-09 11:41:31

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

在控制器中:

@orders=(Order.where(:hotel_user_id=>cookies[:hotel_id_for_login_user])) .order(params[:sort]).paginate(:per_page=>5,:page=>params[:page])

在视图中:

<th style="color: #808080;font-size: 14px; ">
    <%= link_to "Created On",:sort=>"created_at"%>
</th>

我有一个分页表,我想对其列进行排序。我指的是本教程(http://railscasts.com/episodes/228-sortable-table-columns?autoplay=true)。问题是排序不起作用,我没有收到任何错误。

1 个答案:

答案 0 :(得分:0)

您是否收到查询结果并且没有排序?或者你没有得到结果?

试试这个:

@orders = Order.where("hotel_user_id = ?", cookies[:hotel_id_for_login_user]).order("#{params[:sort]} ASC").paginate(:per_page => 5, :page => params[:page])
  1. 也许你的排序条件需要是一个符号或放在引号中
  2. 查询的“where”部分未设置条件
  3. 由于可能的SQL注入,将用户提供的变量直接放入条件字符串中是不安全的。
  4. 我建议您阅读此内容以获取更多信息:http://guides.rubyonrails.org/active_record_querying.html

    我希望有所帮助!