2014-01-14 64 views
1

是否有正確的方式讓用戶使用下拉列表排序記錄並選擇例如:排序自7天/ 30天/ 90天以來創建的記錄? 將有不超過3個或4個選擇Rails排序created_at自X天前以簡單的下拉菜單

而是使用類似的:

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

哪個不要讓用戶選擇呢?

回答

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 %> 
+0

不壞!但是,如何在視圖中將其顯示爲下拉菜單? – Dl33ter

+0

你去那裏:-) – gmaliar

+2

只有一個評論 - 也許你需要使用Time.zone.now。或日期(a)和日期(b)之間的原始SQL「DATE(created_at)」 –