视图中下拉列表中的Rails格式日期

我可以帮助您在视图中的for下拉列表中格式化日期字段。 我的日期显示时间戳,我希望它们显示为“mm / dd / yyyy”。

在我的模型中,我有一个方法从表中选择一个日期字段:

def self.get_event_dates event_dates = UgradRsvp.find_by_sql("select distinct event_date from admissions.ugrad_rsvps where event_date is not null order by event_date desc") end 

我们使用Oracle作为我们的数据库,所以我也尝试使用to_char(event_date,’MM / DD / YYYY’)作为event_date,但我的下拉列表中的日期仍显示时间戳。

我的观点是一个搜索表单。 用户将选择一个日期,然后查看在该event_date上注册参加活动的所有学生的报告:

  

我的表ugrad_rsvps中有大约八个日期。 它们显示为,即:“2013-04-18 00:00:00 -0400”我想让它们显示为“04/18/2013”​​。 我已经尝试过使用strftime(“%m /%d /%Y”),但我只是在我的视图中为下拉列表中的错误(上图)。

有任何想法吗? 谢谢,

在您的模型中添加以下方法

  def event_date_formatted event_date.strftime("%m/%d/%Y") end 

然后你就可以这样使用:

 <%= select_tag "event_date", options_from_collection_for_select(UgradRsvp.get_event_dates, 'event_date', :event_date_formatted) %> 

我还没试过,但你可以尝试将方法添加到模型中

 class UgradRsvp < ActiveRecord::Base def event_date_text event_date.strftime("%d/%m/%Y") end end 

然后将event_date_text作为txt_method调用

 <%= select_tag "event_date", options_from_collection_for_select(UgradRsvp.get_event_dates, "event_date", "event_date_text") %>