Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

NoMethodError: undefined method `unserialized_value' #119

Closed
fuuka opened this Issue · 4 comments

3 participants

@fuuka

If using this gem, error occured when copying ActiveRecord object which contains serialized column.

Gemfile

source 'http://rubygems.org'

gem 'rails', '3.2.6'
gem 'sqlite3'
gem 'composite_primary_keys'

app/models/temp.rb

class Temp < ActiveRecord::Base
  attr_accessible :item
  serialize :item, Array
end
$ rails c
Loading development environment (Rails 3.2.6)
1.9.3p194 :001 > r1 = Temp.new
 => #<Temp id: nil, item: [], created_at: nil, updated_at: nil> 
1.9.3p194 :002 > r2 = r1.dup
(Object doesn't support #inspect)
 =>  
1.9.3p194 :003 > r2.item
NoMethodError: undefined method `unserialized_value' for []:Array
    from /Users/**/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.6/lib/active_record/attribute_methods/read.rb:72:in `__temp__'
    from (irb):3
    from /Users/**/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands/console.rb:47:in `start'
    from /Users/**/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands/console.rb:8:in `start'
    from /Users/**/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.6/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'
@cfis
Owner

Thanks for the report. Will take a look - or if you want to make a patch happy to accept it.

@tism

The problem seems to stem from composite_primary_keys/base.rb vs active_record/base.rb (I haven't checked against master yet). The missing line of code causes the attributes to be initialised with unserialization, however without it the attributes are accessed normally and unserialized on demand. The method that is eventually triggering the issue is the method generated for the attribute which is generated in attribute_methods/read.rb. I'm running a quick hack against my project's test suite to see what happens, if that turns out a patch should be trivial.

@cfis
Owner

Can you see if 5.0.9 fixes the issue?

@fuuka

Hi, I tried 5.0.9 and it seems to be working fine. Thanks for the fix.

@fuuka fuuka closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.