这些花括号意味着什么?

时间:2013-09-07 15:00:33

标签: sql ruby-on-rails ruby ruby-on-rails-4

我正在使用rails教程,并遇到了这一行rails g model product name decimal:{7, 2}

最后那些花括号是什么意思?他们做了什么?

最初,我认为他们用浮点数强制一定程度的精度,但事实证明这是错误的。我可以制作一个10位十进制数,小数点到千分之一。

2 个答案:

答案 0 :(得分:1)

请参阅例如: - http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html

它说:

  

为清楚起见:precision是有效位数,   而标度是可以存储的数字位数   小数点。例如,数字123.45的精度为5   精度为5的小数,精度为5,小数为2   范围从-999.99到999.99。

答案 1 :(得分:1)

这是十进制字段的精度(总位数)和 scale (小数点后的数字)。

来自rails g model -h

For decimal two integers separated by a comma in curly braces will be used
for precision and scale:

    `rails generate model product price:decimal{10,2}`

来自MySQL docs

  

DECIMAL列的声明语法为DECIMAL(M,D)。该   MySQL 5.1中参数的值范围如下:

     
      
  • M是最大位数(精度)。它的范围是1   (较早版本的MySQL允许范围为1到254.)

  •   
  • D是小数点右边的位数(   规模)。它的范围为0到30,且不得大于M

  •