Puzzled by polymorphic related error

Here is what my schema and models look like currently and the error I
get is below …

create_table “attributes”, :force => true do |t|
t.string “field_name”
t.integer “reliability”
t.integer “attribute_record_id”
t.string “attribute_record_type”
end

create_table “parsed_sections”, :force => true do |t|
t.integer “section_id”
t.integer “conversion_id”
t.string “sect_typ”
t.text “txt”
t.boolean “overrun”
t.text “end_marker”
t.datetime “created_at”
t.datetime “updated_at”
end

class Attribute < ActiveRecord::Base
belongs_to :attribute_record, :polymorphic => true
end

class ParsedSection < ActiveRecord::Base
belongs_to :conversion
has_many :attributes, :as => :attribute_record
end

rails console

irb(main):005:0* psect = ParsedSection.new
=> #<ParsedSection id: nil, section_id: nil, conversion_id: nil,
sect_typ: nil,
txt: nil, overrun: nil, end_marker: nil, created_at: nil, updated_at:
nil>
irb(main):006:0> psect.save
ActiveRecord::AssociationTypeMismatch: Attribute(#24728580) expected,
got String
(#2258112)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/
lib/active_r
ecord/associations/association_proxy.rb:260:in
raise_on_type_mismatch' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/ lib/active_r ecord/associations/association_collection.rb:520:inblock in
remove_records’
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/
lib/active_r
ecord/associations/association_collection.rb:520:in each' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/ lib/active_r ecord/associations/association_collection.rb:520:inremove_records’
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/
lib/active_r
ecord/associations/association_collection.rb:221:in delete' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/ lib/active_r ecord/transactions.rb:331:inrestore_transaction_record_state’
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/
lib/active_r
ecord/transactions.rb:250:in rescue in rollback_active_record_state!' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/ lib/active_r ecord/transactions.rb:254:inrollback_active_record_state!’
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.3/
lib/active_r
ecord/transactions.rb:236:in save' from (irb):6 from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/ rails/comman ds/console.rb:44:instart’
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/
rails/comman
ds/console.rb:8:in start' from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/ rails/comman ds.rb:23:in<top (required)>’
from script/rails:6:in require' from script/rails:6:in
irb(main):007:0>

wbsurfver@… <wbsurfver@…> writes:

class Attribute < ActiveRecord::Base
belongs_to :attribute_record, :polymorphic => true
end

class ParsedSection < ActiveRecord::Base
belongs_to :conversion
has_many :attributes, :as => :attribute_record
end

I believe you will have problems with columns called “attributes”,
especially
with has_many associations.