How can I modify the input type of the Rails datetime_select helper?

前端 未结 2 518
死守一世寂寞
死守一世寂寞 2021-02-06 18:50

I am using the Rails helper datetime_select in one of my forms. I currently have a requirement to change the dropdowns for day, year,

2条回答
  •  自闭症患者
    2021-02-06 19:28

    how about rolling your own simple helper, like

    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
    

    Feel free to add more formatting stuff/separators etc. but it basically returns to correct field names for rails to be identified as DateTime. Rails expects fields named like date(1i), 1i = year, 2i = month etc.

    Honestly I didn't test it or anything, but the output in console looked pretty convincing ;)

提交回复
热议问题