只有一个下拉列表的日期选择

时间:2010-12-17 12:51:29

标签: ruby-on-rails select drop-down-menu

我有一个带有created_at

的模型文章

在我的索引视图中,我希望用户能够选择在“2010年10月,2010年11月,2010年12月等”中创建的所有文章。只有一个选择下拉列表。

以前有人这样做过吗?

2 个答案:

答案 0 :(得分:3)

Rails 3(MySQL)

class Article < ActiveRecord::Base
  ...code here...
  def self.article_months
    group_by_clause = "to_char(created_at,'<your date format>')"
    Article.group(group_by_clause).select("#{group_by_clause} as month, count(*) as count").order(created_at desc).all
  end
  ...code here...
end

在您的视图中,使用select_tag或collection_select或其他内容并渲染上面的集合。

答案 1 :(得分:2)

在我的控制器中,我做了:

@startdates = ActiveRecord::Base.connection.select_rows("SELECT DISTINCT MONTH(start_date), YEAR(start_date) FROM schedules WHERE event_id IN (#{@events.map{|n| n.id}.join(',')}) ORDER BY start_date ASC;")

在我看来:

<%= select(:event, :startdate, @startdates.map{|s| ["#{t("date.month_names")[s[0].to_i]} #{s[1]}", "#{s[1]}-#{s[0]}"]}, {:selected => @startdate.to_s, :include_blank => "All"}) %>