在数字输入中进行验证,并希望在没有 Ruby on Rail 的情况下获得与输入相同的输出

validation in number input and want to get same output as input without in ruby on rails

提问人:Amit K 提问时间:5/23/2023 更新时间:5/24/2023 访问量:43

问:

当我输入 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 小数点和数字中的所有内容。

Ruby-on-Rails 验证 RubyGems 数字格式

评论

0赞 Les Nightingill 5/23/2023
这些和方法是什么?它们是否与某些特定的宝石有关?它们在什么文件中?它们看起来不像我熟悉的任何 ruby/rails 方法!form do...index do...
0赞 Amit K 5/24/2023
这些是用于获取已创建数据列表的管理面板方法。和表单用于创建数据。

答:

0赞 Prateek Choudhary 5/24/2023 #1

这是 in rails 的默认行为(由 它的 定义)。Numberto_s

如果在你的观点中,你想以你刚才描述的方式展示它,这里有两件事(我能想到的)你可以做。

  1. 在视图中使用 NumberHelper:。number_with_precision

  2. 在模型中将属性标记为浮点数

    class YourModel  
      attribute :single_coin_worth, :float
    

还有另一种方法,那就是猴子修补方法,但我建议你不要这样做,强调 NOT。这将改变核心库的行为,这从来都不是一件好事,并且将来可能会产生一些令人讨厌的错误。Number#to_s

祝一切顺利。