Doubt regarding float field query (ruby on rails with mysql)

4

Hello, I have a question regarding a database with rails.

If I declare a field is "float", when I do the query, do I need to use ".to_float" for the rails to understand the type of this field?

For example, in this calculation:

def self.tipe(a)
  pro = ProAttr.where(:pro_id => pro.id).first

  percent_completed_calculated_aggregate = (pro.aggregate_effort.to_float / pro.to_float) * 100
     
    
asked by anonymous 06.10.2016 / 14:36

1 answer

2

Rails works with fields with% point of% transparent, so you do not need to do this explicit conversion. A detail for Rails flutuante de modo migrations are worked generically as pontos flutuantes .

Creating the model would look something like:

rails g model ProAttr aggregate_effort:decimal

For this type of field there are extra options ( type modifiers ) as decimal and precision .

Where scale is the total digits that your decimal can have and precision is the number amount after the decimal point (point in this case).

To generate with these modifiers already would be like this

rails g model ProAttr 'aggregate_effort:decimal{5,2}'

If you need to add a decimal field in the migration, something like this:

add_column :pro_attrs, :aggregate_effort, :decimal, precision: 5, scale: 2

Doing so will get you less headache with floating point fields.

    
07.10.2016 / 13:34