在数据库中,价格以美分为单位存储,并且很容易以正确的格式显示它们,但是当我尝试使用text_field
助手时,似乎没有一种方法可以在没有JavaScript的情况下将货币格式化为输入值。
<%= form_with model: @item, local: true do |f| %>
...
<div class="flex flex-col mb-3">
<%= f.label :price, 'Price' %>
<%= f.text_field :price, type:'number' %>
</div>
...
<% end %>
字符串
有没有什么方法可以在普通的HTML/Ruby中做到这一点,如果没有,有没有什么简单的JavaScript变通方法可以使用内置的Stimulus库?
2条答案
按热度按时间e4eetjau1#
我不会在表单中公开原始的基于美分的值,而是使用基于美元的自定义属性。
字符串
并以如下形式使用该属性:
型
注意:您还需要将
price_in_dollars
添加到控制器中的强参数。ttvkxqim2#
尝试使用指定了step attribute的
number_field_tag
,而不是text_field
。字符串