Java like ear / Cache / Class in Ruby???

Hi,

We are facing a very weird situation. We do not face the problem in our local but face it on the web service where we hosted. Seems like the kinda of issues we have in java where either code stayed in cache and not clearing even after server restart or ear deployment issues, etc.

Our model is as follows. User can have one contact. The contact sometimes should have country and state mandatory.

class User < ActiveRecord::Base   has_one :contact, :as => :contactable

class Contact < ActiveRecord::Base   belongs_to :contactable, :polymorphic => true   attr_accessor :validate_country, :validate_state   validates_presence_of :country, :if => "validate_country"   validates_presence_of :state, :if => "validate_state"

We are not calling @user.contact.validate_country = true anywhere but when doing @user.save on creation, we get an effort that cannot find function validate_country.

We also tried some varieties of code.   attr_accessor "validate_country", "validate_state"   attr_accessible :validate_country, :validate_state   attr_accessible "validate_country", "validate_state"

Can anything think of something?

Can someone please help us with this error? It's blocking basic functionality of our application

The exact exception is

undefined local variable or method `validate_country' for #<Contact: 0xb7116d9c> /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ attribute_methods.rb:260:in `method_missing' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `instance_eval' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:195:in `should_run_callback?' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `all?' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:195:in `each' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:195:in `all?' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:195:in `should_run_callback?' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:166:in `call' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `run' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `each' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `send' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `run' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:276:in `run_callbacks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ validations.rb:1029:in `valid_without_callbacks?' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ callbacks.rb:315:in `valid?' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ associations/association_proxy.rb:221:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ associations/association_proxy.rb:221:in `method_missing' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ autosave_association.rb:249:in `association_valid?' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ autosave_association.rb:229:in `validate_single_association' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ autosave_association.rb:183:in `validate_associated_records_for_contact' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `instance_eval' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:180:in `evaluate_method' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:166:in `call' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `run' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `each' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `send' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:90:in `run' /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/ callbacks.rb:276:in `run_callbacks' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ validations.rb:1029:in `valid_without_callbacks?' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ callbacks.rb:315:in `valid?' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ validations.rb:1008:in `save_without_dirty' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ dirty.rb:79:in `save_without_transactions' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:229:in `send' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:229:in `with_transaction_returning_status' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ connection_adapters/abstract/database_statements.rb:136:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:182:in `transaction' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:228:in `with_transaction_returning_status' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:196:in `save' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:208:in `rollback_active_record_state!' /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.3/lib/active_record/ transactions.rb:196:in `save' /home/viridian/rails_apps/backstage/app/controllers/ users_controller.rb:84:in `create'

Can someone please assist on this?

The :if clauses should be symbols, not strings. BTW, bumping a post twice in the space of an hour is a great way to get the group to ignore you.

--Matt Jones