在我的Ruby on Rails应用程序中,当用户提交表单时,我希望能够捕获创建表单的当前月份和年份。但是,对于本月,我希望能够使用使用实际月份名称的一个月而不是Rails的别名。例如:
我能够找到最接近的解决方案来使用Rails Internationalization(I18n)API。有没有人知道是否有更好或更简单的方法,而不是创建一个假的语言给我本地化的月份名称?
更多信息
我的目的是让rails在month_abbr列下的数据库中记录新的别名。哪个代表月份缩写。因此,如果我在10月份提交表格,则字母“C”将记录在数据库中。类似于为每条记录自动记录时间戳的方式,我想只捕获月份并记录单个字符别名。
在幕后进一步窥视,我们需要月份缩写只有1个字符。将来本月的缩写将连接成批代码。我们试图尽量缩短批次代码,这就是我们不能使用内置月份缩写的原因。它们太长了。
答案 0 :(得分:0)
这似乎很容易。只需在创建记录时将月份数映射到代码一次。
class Order
MONTH_ABBRS = {
1 => 'J',
2 => 'F',
3 => 'R',
...
}
before_create :save_month_abbr
private
def save_month_abbr
self.month_abbr = MONTH_ABBRS[created_at.month]
# also you can create your order number here, or whatever
end
end