jeffp / enumerated_attribute

Easy enum for your models, objects and views
MIT License
190 stars 64 forks source link

save model with enums not working in Rails 3 #19

Closed silviurosu closed 13 years ago

silviurosu commented 13 years ago

I installed your gem in my project. In migration I have: def self.up create_table :ads do |t| t.integer :price t.string :aasm_column t.integer :visualized t.enum :property_type t.enum :ad_type ..........

The model: class Ad < ActiveRecord::Base enum_attr :property_type, %w(apartment house land) #, :nil => false enum_attr :ad_type, %w(sell rent) #, :nil => false ...........

I create a new Ad in console:

ruby-1.9.2-head > ad = Ad.new => #<Ad id: nil, price: nil, aasm_column: nil, visualized: nil, property_type: "apartment", ad_type: "sell", description: nil, attributes: nil, aditional_attributes: nil, has_attached_image: nil, zone_id: nil, user_id: nil, created_at: nil, updated_at: nil> .................

When I try to save the entity I receive this error:

ruby-1.9.2-head > ad.save ActiveRecord::DangerousAttributeError: attributes_before_type_cast is defined by ActiveRecord from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/attribute_methods.rb:23:in instance_method_already_implemented?' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:263:inblock (2 levels) in define_attribute_methods' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:262:in each' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:262:inblock in define_attribute_methods' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:261:in each' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activemodel-3.0.3/lib/active_model/attribute_methods.rb:261:indefine_attribute_methods' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/attribute_methods.rb:13:in define_attribute_methods' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/attribute_methods.rb:41:inmethod_missing' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/enumerated_attribute-0.2.16/lib/enumerated_attribute/attribute/instance_methods.rb:9:in block in included' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/database_statements.rb:296:inflatten' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/database_statements.rb:296:in rollback_transaction_records' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/database_statements.rb:147:inrescue in transaction' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/connection_adapters/abstract/database_statements.rb:127:in transaction' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/transactions.rb:204:intransaction' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/transactions.rb:287:in with_transaction_returning_status' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/transactions.rb:237:inblock in save' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/transactions.rb:248:in rollback_active_record_state!' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/activerecord-3.0.3/lib/active_record/transactions.rb:236:insave' from (irb):2 from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.3/lib/rails/commands/console.rb:44:in start' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.3/lib/rails/commands/console.rb:8:instart' from /Users/silviu/.rvm/gems/ruby-1.9.2-head/gems/railties-3.0.3/lib/rails/commands.rb:23:in <top (required)>' from script/rails:6:inrequire' ............

Do you know how can I solve this issue because I'm stuck with this from some time?

UPDATE: The error was from my mistake. I had a field in view "attributes" and there is a method with this name