自动排序?

时间:2016-04-04 19:04:58

标签: ruby-on-rails ruby sorting

我有一个表可以对邮件进行排序以及何时发送邮件。现在,当用户进入页面时,它开始订购邮件正文,我希望它在用户启动页面时从desc时间开始发送。我将展示一些代码和截图。我还在railscast#228上找到了这段代码。

以下是对它们进行排序的方法。

 def sort_column
  Message.column_names.include?(params[:sort]) ? params[:sort] : "body"
 end

 def sort_direction
  %w(asc desc).include?(params[:direction]) ? params[:direction] : "asc"
 end

这是视图

 <tbody>
    <% @message.each do |message| %>
      <tr>
        <td><%= message.body %></td>
        <td><%= time_ago_in_words message.created_at %> ago</td>
        <td><%= message.groups.order(:id).pluck(:name).to_sentence %></td>
      </tr>
    <% end %>
  </tbody>

这是用户打开页面时看到的内容,因为您可以看到箭头在消息上。我希望箭头与desc的方向“发送”。

enter image description here

我不确定这是否足够,但请告诉我!

2 个答案:

答案 0 :(得分:1)

如果您只想按创建日期显示消息,请在索引操作中拉出&#39;如下所示:

Message.order(created_at: :desc)

答案 1 :(得分:1)

您的sort_direction"body"函数默认为"asc"created_at

如果要将排序顺序默认为def sort_column Message.column_names.include?(params[:sort]) ? params[:sort] : "created_at" end def sort_direction %w(asc desc).include?(params[:direction]) ? params[:direction] : "desc" end ,请更改功能如下:

AVPlayerViewController