In this post, we are going to take a look at the new HTML5 Form Helpers being added into Rails 4. While we are only covering the model object helper versions that are used with
form_for
, each form helper below also has a corresponding tag helper. For example, if we are talking about week_field
, there is a tag helper week_field_tag
that can be used withform_tag
.week_field
The
week_field
form helper creates an input of type "week", that sets a week without any timezone information. A week is represented by four digits for the year, followed by -W
, and ending with two digits representing the week number. For example, the current week of this post would be 2012-W50
.
The
week_field
form helper accepts three options: :min
, :max
, and :step
::min
: The minimum acceptable value:max
: The maximum acceptable value:step
: The acceptable value granularity
Here is an example of a
week_field
being set with optional minimum and maximum week constraints:<%= f.week_field :week, min: Time.zone.today.beginning_of_year, max: Time.zone.today.end_of_year %>
DateTime
or ActiveSupport::TimeWithZone
value into aweek_field
, Rails sets the expected string on the input by calling strftime
with%Y-W%W on the object.month_field
The
month_field
form helper creates an input of type "month", that sets a month without any timezone information. A month is represented by four digits for the year, followed by a dash, and ending with two digits representing the month. For example, the current month of this post would be 2012-12
.
The
month_field
has a very similar interface as the week_field
form helper. It can accept options :min
, :max
, and :step
.<%= f.month_field :month %>
A
DateTime
or ActiveSupport::TimeWithZone
object passed as the value to the month_field
will have strftime
called with %Y-m.datetime_field and datetime_local_field
The
datetime_field
form helper creates an input of type "datetype", and accepts time in UTC. Another form helper available is datetime_local_field
, which has the exact same interface as datetime_field
, except the user does not have to deal with UTC.
Like the form helpers above, the
datetime_field
accepts options :min
, :max
, and :step
.<%= f.datetime_field :birthday %>
A
DateTime
or ActiveSupport::TimeWithZone
object passed as the value to the datetime_field
and datetime_local_field
will have strftime
called with %Y-%m-%dT%T.%L%z and %Y-%m-%dT%T respectively.color_field
The
color_field
form helper allows users to set a color via hex values. Browsers such as Opera have a native color picker that users can use to select colors.<%= f.color_field :background_color %>
time_field
The
time_field
form helper creates an input of type "time". Similar to above mentioned date form helpers, time_field
accepts options :min
, :max
, and:step
.<%= f.time_field :daily_reminder_time %>
A
DateTime
or ActiveSupport::TimeWithZone
object passed as the value to the time_field
and datetime_local_field
will have strftime
called with %T.%L.date_field
The
date_field
form helper creates an input of type "date". If an object is provided to the helper, it calls to_date
on it to attempt setting the default value.<%= f.date_field :birthday %>
To override the default value, pass a string in the format YYYY-MM-DD to the
:value
in the options hash.highlight == mark
ActionView::Helpers::TextHelper#highlight
now uses the mark
to highlight text.
Something like:
<%= highlight('Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.', 'Lorem') %>
Will generate the following output:
<mark>Lorem</mark> ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Good
ReplyDeleteNice Post
ReplyDelete