On 7 March 2010 00:39, mamathahl <[email protected]> wrote:
>
> I have been facing some problem with the datatypes.  I have a sample of code
> as follows.
>
>  t.lat_rad = (l.lat * BigDecimal.new("3.1415926536 / 180")).to_f
>   t.lng_rad = (l.lng * BigDecimal.new("3.1415926536 / 180")).to_f
>
> Initially, the datatype of lat_rad and lng_rad was as follows:
>
>  t.decimal :lat_rad, :precision => 15, :scale => 10
>  t.decimal :lng_rad, :precision => 15, :scale => 10
>
> So, it gave me an error as follows:
>
>  TypeError in ItemsController#populate
>
> wrong argument type BigDecimal (expected Float)
>
> Then I changed the data type of lat_rad and lng_rad to float.  Even then it
> is giving me the same error.  Any help to solve this problem will be
> appreciated.  Thanks in advance.

I would suggest first splitting the statement into several lines
performing a single operation on each line, this will enable you to
identify which part of the statement is generating the error.  Also
try playing in ruby console to try and see what is going on.  Finally
you could use ruby-debug to break in to the code and examine the types
of the variables to find what may not be quite as you expect.

Also you did not answer the question as to whether this is in a
migration.  If so then it fraught with problems, it is not advisable
to seed data within a migration if that is what you are doing.

Colin

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to