Forum: Ruby on Rails when/where does Rails convert "params" used to populate a model object from a form, into their corre

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-26 22:44
(Received via mailing list)
Hi,

When/where does Rails convert "params" used to populate a model object
from a form, into their correct types in the model object??? (i.e.
from "string")   What part of rails does this?

I have a form upload and in my create method where I go
:@graph_options = GraphOptions.new(params[:graph_options])" it is not
doing the type conversion, as the attributes remain as strings.

Note I am using BaseWithoutTable

------------------
class GraphOptions < ActiveRecord::BaseWithoutTable
  column :label_title, :string
  column :start_date, :date
  column :end_date,   :date
  column :granularity, :integer
  column :chart_type, :integer
.
.
.
------------------

thanks
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-11-27 08:32
(Received via mailing list)
On Nov 26, 9:43 pm, "Greg Hauptmann" <greg.hauptmann.r...@gmail.com>
wrote:
> Hi,
>
> When/where does Rails convert "params" used to populate a model object
> from a form, into their correct types in the model object??? (i.e.
> from "string")   What part of rails does this?
>
Well it's the call to column.typecast here:
http://github.com/rails/rails/tree/2-2-stable/acti...
Which is defined here:
http://github.com/rails/rails/tree/2-2-stable/acti...

(but possibly overriden by individual connection adapters).

How that interacts with BaseWithoutTable I have no idea.

Fred
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-27 08:55
(Received via mailing list)
thanks - I'll have a look at the code - so would it be correct to say
then that the Rails framework does effectively cast the params strings
to their type prior to any saves to the data?  (i.e. its not like it
leave this up to the database to do itself is it, i.e. like if there
was a date it doesn't just pass the string representation of the data
through to the database to store in it's Date field)


On Thu, Nov 27, 2008 at 5:31 PM, Frederick Cheung
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-11-27 11:15
(Received via mailing list)
On Nov 27, 7:54 am, "Greg Hauptmann" <greg.hauptmann.r...@gmail.com>
wrote:
> thanks - I'll have a look at the code - so would it be correct to say
> then that the Rails framework does effectively cast the params strings
> to their type prior to any saves to the data?  (i.e. its not like it
> leave this up to the database to do itself is it, i.e. like if there
> was a date it doesn't just pass the string representation of the data
> through to the database to store in it's Date field)

Actually it doesn't (minor exception in that a blank string is turned
into nil for numbers). typecasting happens in read_attribute (check
the source for read/write_attribute.


Fred
D5df9fcd7ef4c3c937435d7d6adeab2a?d=identicon&s=25 Greg Hauptmann (Guest)
on 2008-11-27 11:44
(Received via mailing list)
ohhh, thanks.  Things make sense now when I look at my object state in
debug & see the strings..

On Thu, Nov 27, 2008 at 8:15 PM, Frederick Cheung
This topic is locked and can not be replied to.