Выбор даты только с одним раскрывающимся списком - PullRequest
0 голосов
/ 17 декабря 2010

У меня есть модельные статьи с create_at

. В моем индексном представлении я хочу, чтобы пользователь мог выбирать все статьи, созданные в «октябре 2010, ноябре 2010, декабре 2010 и т. Д.»только с одним выпадающим списком.

Кто-нибудь делал это раньше?

Ответы [ 2 ]

3 голосов
/ 17 декабря 2010

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 или что-то еще и визуализируйте коллекцию выше.

2 голосов
/ 03 февраля 2011

В моем контроллере я сделал:

@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"}) %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...