Video.find(1).to_xml
ArgumentError: wrong number of arguments (0 for 1)
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:292:in y' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:292:insend’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:292:in compute_value' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:247:ininitialize’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:166:in new' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:166:inserializable_attributes’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:166:in collect' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:166:inserializable_attributes’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:177:in add_attributes' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:233:inserialize’
from /usr/local/lib/ruby/gems/1.8/gems/
activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb:
140:in call' from /usr/local/lib/ruby/gems/1.8/gems/ activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb: 140:in_nested_structures’
from /usr/local/lib/ruby/gems/1.8/gems/
activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb:
60:in method_missing' from /usr/local/lib/ruby/gems/1.8/gems/ activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb: 32:insend’
from /usr/local/lib/ruby/gems/1.8/gems/
activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb:
32:in tag!' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:232:inserialize’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serialization.rb:91:in to_s' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:125:into_xml’
from (irb):11>>
Here is my videos table if it helps:
class CreateVideos < ActiveRecord::Migration
def self.up
create_table :videos do |t|
Just to isolate things I created a new project with just one table
with one column.
class CreateVideos < ActiveRecord::Migration
def self.up
create_table :videos do |t|
t.integer :x
t.timestamps
end
end
def self.down
drop_table :videos
end
end
This works, but when I rename ‘x’ to ‘y’ it .to_xml breaks again:
Video.new.to_xml
ArgumentError: wrong number of arguments (0 for 1)
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:292:in y' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:292:insend’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:292:in compute_value' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:247:ininitialize’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:166:in new' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:166:inserializable_attributes’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:166:in collect' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:166:inserializable_attributes’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serializers/
xml_serializer.rb:177:in add_attributes' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:233:inserialize’
from /usr/local/lib/ruby/gems/1.8/gems/
activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb:
140:in call' from /usr/local/lib/ruby/gems/1.8/gems/ activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb: 140:in_nested_structures’
from /usr/local/lib/ruby/gems/1.8/gems/
activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb:
60:in method_missing' from /usr/local/lib/ruby/gems/1.8/gems/ activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb: 32:insend’
from /usr/local/lib/ruby/gems/1.8/gems/
activesupport-1.4.2.7707/lib/active_support/vendor/builder/xmlbase.rb:
32:in tag!' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:232:inserialize’
from /usr/local/lib/ruby/gems/1.8/gems/
activerecord-1.15.3.7707/lib/active_record/serialization.rb:91:in to_s' from /usr/local/lib/ruby/gems/1.8/gems/ activerecord-1.15.3.7707/lib/active_record/serializers/ xml_serializer.rb:125:into_xml’
from (irb):1>>
This is calling YAML’s Kernel#y method instead of your ‘y’ attribute.
Attribute reader methods are defined for columns which don’t already
have a method with the same name. The test for methods with the same
name has been in flux and, in this case, is casting too wide a net.
Tobi worked around the problem in http://dev.rubyonrails.org/changeset/7731. The fix will be available
in the next preview gem or you can rake rails:freeze:edge to get it
now.
I just ran rake rails:freeze:edge and I still get the error:
Video.new.to_xml
ArgumentError: wrong number of arguments (0 for 1)
from /Users/eggie5/Sites/mms-service/vendor/rails/activerecord/
lib/active_record/serializers/xml_serializer.rb:292:in y' from /Users/eggie5/Sites/mms-service/vendor/rails/activerecord/ lib/active_record/serializers/xml_serializer.rb:292:insend’
from /Users/eggie5/Sites/mms-service/vendor/rails/activerecord/
lib/active_record/serializers/xml_serializer.rb:292:in `compute_value’