提问人:Amit K 提问时间:5/23/2023 更新时间:5/24/2023 访问量:43
在数字输入中进行验证,并希望在没有 Ruby on Rail 的情况下获得与输入相同的输出
validation in number input and want to get same output as input without in ruby on rails
问:
当我输入 0.0001 时。 我得到的输出为 0.0001。 当我在 1 之前输入 0.00001 或更多 0 时。 然后我选择 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 for 管理面板
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']}
我希望输出编号与输入相同。 我还想限制输入字段 ecxept 小数点和数字中的所有内容。
答:
0赞
Prateek Choudhary
5/24/2023
#1
这是 in rails 的默认行为(由 它的 定义)。Number
to_s
如果在你的观点中,你想以你刚才描述的方式展示它,这里有两件事(我能想到的)你可以做。
在视图中使用 NumberHelper:。
number_with_precision
在模型中将属性标记为浮点数
class YourModel attribute :single_coin_worth, :float
还有另一种方法,那就是猴子修补方法,但我建议你不要这样做,强调 NOT。这将改变核心库的行为,这从来都不是一件好事,并且将来可能会产生一些令人讨厌的错误。Number#to_s
祝一切顺利。
评论
form do...
index do...