Rails从X天前开始使用简单的下拉列表对created_at进行排序

时间:2014-01-14 14:03:15

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

是否有正确的方法让用户使用下拉列表对记录进行排序并选择例如:对自7天/ 30天/ 90天以来创建的记录进行排序? 将有不超过3或4个选择

而不是使用类似的东西:

    @post = Post.where(created_at: 5.days.ago..Time.now)

哪个不让用户选择?

1 个答案:

答案 0 :(得分:3)

决定列出天数的简单参数如何?

# some controller

def action
  number_of = ([7, 30, 90].include?(params[:days].to_i) ? params[:days].to_i : 7)
  @post = Post.where(created_at: number_of.days.ago..Time.now)
end

和一个天真的erb模板可能是这样的:

<%= form_tag "/controller/action", method: :get do %>
  <%= select_tag(:days, options_for_select([['7 days ago', 7], ['30 days ago', 30], ['90 days ago', 90])) %>
  <%= submit_tag("Filter") %>
<% end %>