1

Rails 7 adds :day_format option to date_select

 2 years ago
source link: https://blog.saeloun.com/2021/12/07/rails-7-adds-format-day
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

There are very few inconsistencies with Rails, but the very few times it does, we’re left thinking: “How could they have missed this!”. One such inconsistency is with date_select. Though it has a myriad of options, it lacks in some basic ones.

Before

date_select provides users with an option to control the format of the year being displayed in the select box. The default select boxes look like this,

Using the year_format option allows us to configure the format in which the year gets printed out in the select box,

<%= f.date_select :birthday, year_format: -> (year) {"Year #{year}"} %>

This might seem trivial however, it happens that it is a crucial feature when developing in the Japanese language. In Japanese culture, the date 2021-11-29 is usually written like 2021年11月29日. 年 means year, 月 means month, and 日 means day.

However, Rails only provides the option for year_format and a workaround for configuring months (using the use_month_names option).

After

Rails 7 adds :day_format option to date_select method. Similar to year_format, we can now pass the day_format key to get a date in the desired format.

<%= f.date_select :published_date, day_format: -> (day) { day.ordinalize } %>

However, we feel that this feature is still incomplete without the month_format option.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK