2010-07-12 65 views
2

我正在使用我的一種形式的Rails幫手datetime_select。我目前有要求將day,year,hourminute的下拉列表更改爲帶驗證的文本框。有沒有一種方法可以指定我需要這些字段的文本框?或者可能是不同的幫手,會做我所需要的?如何修改Rails datetime_select幫助程序的輸入類型?

這裏是我的用法:

datetime_select(:campaign, :start_date, :order => [:day, :month, :year, :hour, :minute]) 

回答

4

如何滾動自己的簡單的幫手,就像

def datetime_text_fields(object_name, method) 
    html = text_field_tag("#{object_name}[#{method}(3i)]", Date.today.day.to_s, :length => 2) 
    html << select_month(Date.today, :field_name => "#{object_name}[#{method}(2i)]") 
    html << text_field_tag("#{object_name}[#{method}(1i)]", Date.today.year.to_s, :length => 4) 
    html << " " 
    html << text_field_tag("#{object_name}[#{method}(4i)]", Time.now.hour.to_s, :length => 2) 
    html << ":" 
    html << text_field_tag("#{object_name}[#{method}(5i)]", Time.now.min.to_s, :length => 2) 
end 

隨意添加更多格式的東西/分離器等,但它基本上返回到正確的領域導軌名稱被標識爲DateTime。 Rails的預計,命名爲喜歡date(1i)領域,1I =年,2I =月等

老實說,我沒有測試或任何東西,但在控制檯輸出看起來相當有說服力;)

0

爲什麼不推出自己的,只需使用日期選擇器幫助程序的相同方式命名輸入字段,並在滾動自定義前端時獲得所有後端優勢。或者使用:order讓你的日期選擇器給出月份選擇,併爲其他輸入使用一些javascript魔術。

你可以使用jQuery的日期選擇器並使用與rails datepicker相同的命名約定來填充隱藏的字段。