当我输入0.0001。输出为0.0001。当我输入0.00001或更多0在1之前。然后我得到1.0e-5或值大于5。
这是我在管理面板上的索引。
index do
selectable_column
column :id
column :transaction_type
column "Single Coin Worth($)", :single_coin_worth
# actions defaults: true #for all actions like(edit, show and delete)
actions defaults: false do |coin_setting|
item "Show", admin_setting_path(coin_setting), class: "member_link"
item "Edit", edit_admin_setting_path(coin_setting), class: "member_link"
end
end
我还想限制输入字段中e表示法。
这是我的fourm管理面板
form do |f|
f.semantic_errors *f.object.errors[:base]
f.inputs do
f.input :single_coin_worth, {required: true, min: 0, max: 100000}
f.input :transaction_type, as: :select, collection: ['purchase', 'withdrawl']
f.actions
end
end
我在模型中有这些验证
validates :single_coin_worth, presence: true
validates :single_coin_worth, numericality: {:less_than_or_equal_to => 1}
validates :single_coin_worth, numericality: {:greater_than => 0}
validates :transaction_type, presence: true, inclusion: {in: ['purchase', 'withdrawl']}
我希望输出数字与输入相同。我也想限制所有的东西在输入字段ecept小数点和数字。
1条答案
按热度按时间knpiaxh11#
这是rails中
Number
的默认行为(由它的to_s
定义)。如果在你看来,你想用上面描述的方式来展示它,这里有两件事(我能想到的)你可以做。
1.使用NumberHelper:
number_with_precision
在您的视图中。1.在模型中将属性标记为浮点型
还有另一种方法,那就是猴子修补
Number#to_s
方法,但我建议你不要这样做,重点是不要。这将改变一个核心库的行为,这从来都不是一件好事,并且会在未来产生一些讨厌的bug。祝你好运