I fixed it by converting it to a hash:
@booking.custom_data = params[:booking][:custom_data].to_hash if 
params[:booking][:custom_data]

I do think that Rails should handle this automatically though. There is no 
way to see this error by just using rails. You have to look at the actual 
data stored in the database to see that it stores more than just the actual 
data. I would suspect there are more people saving serialised attributes 
from a form and will have this issue without realising it.

On Friday, June 1, 2012 2:56:13 PM UTC+2, Espen Antonsen wrote:
>
> My Booking model has: serialize :custom_data, Hash
>
> From the console it works as expected saving values to the custom_data 
> attribute.
>
> But when having a form with parameters like 
> this: booking[custom_data][hello] and creating a new object in the 
> controller like this: Booking.new( params[:booking] ), values are saved in 
> the database with added metadata like this: --- 
> !ruby/hash:ActiveSupport::HashWithIndifferentAccess
>
> How can get rid of the HashWithIndifferentAccess-metadata when saving from 
> a form?
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/JNiKJRng5rUJ.
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