如何生成对数据精度有限制的模型,在 rails 上按 ruby 缩放

How to generate model with restriction on data precision, scale in ruby on rails

我正在尝试生成以下名为 PriceUsdOneMinIntervals 的模型,但无法正确应用精度和比例格式,有人可以建议如何更正以下语法:

rails generate model PriceUsdOneMinInterval unix_timestamp:integer usd_high:decimal :precision[20] :scale[8] usd_low:decimal :precision[20] :scale[8] usd_open:decimal :precision[20] :scale[8] usd_close:decimal :precision[20] scale[8]

我在发表上述声明时参考了this api。

试试这个

rails generate model PriceUsdOneMinInterval :unix_timestamp, :integer, 
:usd_high, :decimal, precision: 20, scale: 8, :usd_low, :decimal, precision: 20, 
scale: 8, :usd_open, :decimal, precision: 20, scale: 8, 
:usd_close, :decimal, precision: 20, scale: 8

仅使用字段名称和 data_types 生成迁移,然后更改您可以更改迁移中的值

def change
    add_column :price_usd_one_min_intervals, :unix_timestamp, :integer
    add_column :price_usd_one_min_intervals, :usd_high, :decimal, precision: 20, :scale: 8
    add_column :price_usd_one_min_intervals, :usd_low, :decimal, precision: 20, scale: 8
    add_column :price_usd_one_min_intervals, :usd_open, :decimal, precision: 20, scale: 8
    add_column :price_usd_one_min_intervals, :usd_close, :decimal, precision: 20, scale: 8
end 
rails g model PriceUsdOneMinInterval \
unix_timestamp:integer \
'usd_high:decimal{20,8}' \
'usd_low:decimal{20,8}' \
'usd_open:decimal{20,8}' \
'usd_close:decimal{20,8}'