如何在simple_form数字字段(Rails)中指定小数精度

wis*_*sew 16 ruby-on-rails decimal simple-form

所以我在数据库中有一个精度为2的十进制字段,用于货币.它工作正常,除非最后一个小数位以0结尾,即.799.90.它将在字段中显示时将其剥离为799.9.我知道number_with_precision,但是我无法在simple_form数字字段中使用该辅助方法,因为它只需要一个符号和html选项作为参数.

我认为我需要创建一个自定义输入来扩展simple_form的默认number_field,但是语法似乎没有很好地记录,所以我无法弄清楚我如何调用number_with_precision这个自定义的定义输入.

我本质上想用小数精度做什么OP这个问题的Formtastic数字字段?希望与formtastic.谢谢!

tox*_*xaq 32

如果您可以使用formtastic进行,您通常可以根据我的经验使用Simple Form.试试这个:

<%= f.input :sales_price, :input_html => {value: number_with_precision(f.object.sales_price, precision: 2) } %>
Run Code Online (Sandbox Code Playgroud)

如果使用input_field,那么您不需要:input_html:

<%= f.input_field :sales_price, value: number_with_precision(f.object.sales_price, precision: 2) %>
Run Code Online (Sandbox Code Playgroud)

  • **重要!**如果您使用具有**逗号**的区域设置作为默认分隔符,则必须将**dot**指定为分隔符,因为逗号支持新的HTML5数字输入(由`simple_form`使用)不够好(https://www.aeyoun.com/posts/html5-input-number-localization.html) (5认同)
  • 我想出了我出错的地方 - 因为我使用`f.input_field`,我没有在input_html哈希中传递`value:number_with_precision ...` - 我可以直接设置它.它现在有效 - 谢谢! (3认同)