【发布时间】:2012-01-17 12:51:25
【问题描述】:
数据库以英语语言和格式的值作为种子,例如 :hourlyrate => 20.90。首次启动时(默认语言为英语),输入表单正确显示字段内容。我可以修改和保存,没问题。 如果我切换到德语,数字会正确显示为 20,90。如果我在此表单上编辑任何内容,我将无法再次保存,因为验证会将数字视为无效。
我的问题是,我必须在保存之前在我的控制器中执行更正,还是我错过了 Rails 的一些内置功能?
代码的相关部分
助手:
def my_number_with_precision(value)
if value
# value
number_with_precision(value, :precision => 2)
end
end
验证:
validates :hourlyrate, :numericality => { :greater_or_equal_than => 0, :message => " is an invalid number or below zero" }
表格:
<div class="input">
<%= f.text_field :hourlyrate, :value => my_number_with_precision(f.object.hourlyrate) %>
</div>
宝石文件
gem 'rails-i18n'
【问题讨论】:
标签: ruby-on-rails-3 internationalization ruby-on-rails-3.1