【发布时间】:2016-09-28 15:55:39
【问题描述】:
在我的 Ruby on Rails 应用程序中,当用户提交表单时,我希望能够捕获创建表单的当前月份和年份。但是,对于月份,我希望能够使用一个月的别名,而不是使用实际月份名称的 Rails。比如:
- J = 一月
- F = 二月
- R = 三月
- A = 四月
- M = 五月
- U = 六月
- Y = 七月
- G = 八月
- S = 九月
- C = 十月
- N = 11 月
- D = 12 月
我找到的最接近的解决方案是使用 Rails Internationalization (I18n) API。有谁知道是否有更好或更简单的方法来做到这一点,而不是创建一种假语言来给我本地化的月份名称?
更多信息
我的目的是让 rails 将新别名记录在数据库中的 month_abbr 列下。代表月份的缩写。因此,如果我在 10 月份提交表格,则字母“C”将记录在数据库中。类似于为每条记录自动记录时间戳的方式,我只想捕获月份并记录单个字符别名。
在幕后进一步观察,我们需要月份缩写只有 1 个字符。将来这个月的缩写将被连接成一个批号。我们试图使批次代码尽可能短,这就是为什么我们不能使用内置月份缩写的原因。它们实在是太长了。
【问题讨论】:
-
你有两个 M。
-
不清楚。你想显示别名?还是接受它作为输入?
-
U = June?G = August?Y = July?C = October?这听起来是个糟糕的主意…… -
为什么不使用 Rails 已经提供的 3 字母缩写(Jan、Feb、Mar、...)?
-
这不是废话吗?当解决方案已经存在时,您为什么还要尝试发明轮子? (见@TomLord 的评论)
标签: ruby-on-rails ruby ruby-on-rails-4 activerecord