# Java like ear / Cache / Class in Ruby?

**URL:** <https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688>\
**Category:** Rails\
**Created:** [August 31, 2009, 2:33pm UTC](https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688 "2009-08-31T14:33:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ritvvij](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bbce88/32.png) [@Ritvvij](https://www.ruby-forum.com/u/Ritvvij)\
**Post date:** [August 31, 2009, 2:33pm UTC](https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688/1 "2009-08-31T14:33:53Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![Ritvvij](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bbce88/32.png) [@Ritvvij](https://www.ruby-forum.com/u/Ritvvij)\
**Post date:** [August 31, 2009, 3:24pm UTC](https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688/2 "2009-08-31T15:24:49Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Ritvvij](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bbce88/32.png) [@Ritvvij](https://www.ruby-forum.com/u/Ritvvij)\
**Post date:** [August 31, 2009, 9:06pm UTC](https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688/3 "2009-08-31T21:06:42Z")

</div>

Can someone please assist on this?

---

<div class="post-metadata">

**Author:** ![Ritvvij](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bbce88/32.png) [@Ritvvij](https://www.ruby-forum.com/u/Ritvvij)\
**Post date:** [September 1, 2009, 6:25pm UTC](https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688/4 "2009-09-01T18:25:38Z")

</div>

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 J.

---

<div class="post-metadata">

**Author:** ![Ritvvij](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/bbce88/32.png) [@Ritvvij](https://www.ruby-forum.com/u/Ritvvij)\
**Post date:** [August 31, 2009, 3:40pm UTC](https://www.ruby-forum.com/t/java-like-ear-cache-class-in-ruby/174688/5 "2009-08-31T15:40:38Z")

</div>

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’
