You can clone with
I m getting method_missing for 'devise' method error when i try to archive a class which belongs to another devise class. When i comment out the association line everything is ok. How can i fix this? Thanks..
Its sad that i had to give up trying to fix this. We were working on an urgent project last week. I will try fix this issue as soon as i ll have time. Thank you for your great work. Loved this gem.
@Winton (or anybody who want to help).
I'ill be glad to help in solving this issue.
here under a summarized trace of the app.
=> Rails 2.3.11 application starting on http://0.0.0.0:3000
/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:1998:in `method_missing': undefined method `devise' for # (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:406:in `load_without_new_constant_marking'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.11/lib/active_support/dependencies.rb:124:in `const_missing'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/base.rb:2234:in `compute_type'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/reflection.rb:156:in `send'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.11/lib/active_record/reflection.rb:156:in `klass'
from /usr/lib/ruby/gems/1.8/gems/acts_as_archive-0.4.0/lib/acts_as_archive.rb:130:in `acts_as_archive'
from /usr/lib/ruby/gems/1.8/gems/acts_as_archive-0.4.0/lib/acts_as_archive.rb:129:in `each'
from /usr/lib/ruby/gems/1.8/gems/acts_as_archive-0.4.0/lib/acts_as_archive.rb:129:in `acts_as_archive'
from /usr/lib/ruby/gems/1.8/gems/acts_as_archive-0.4.0/lib/acts_as_archive.rb:56:in `load_from_yaml'
from /usr/lib/ruby/gems/1.8/gems/acts_as_archive-0.4.0/lib/acts_as_archive.rb:55:in `each'
It seems AAA (acts_as_archive) load the Activerecord model before all the required method (here is a gem, Devise)
a workaround could be to check in the model if the library is defined.. not very fancy, and quite obtrusive
Other way could be to rescue in AAA all errors that could append during the loading... Not very safe
The only good solution is IMHO to ensure AAA is the last resource loaded in the app.
But I didn't figure out to do this (old Rails loading process or Bundler)
I fixed this issue, but it chunk the loading process.
Anybody with this issue would want to see my fork : https://github.com/elmatou/acts_as_archive/tree/manual-loading
check the readme for explanation. (this fork fix also issue 24)
You can also try the following if using Rails 3. This gets around the method missing issue but I'm now getting other errors (Possibly related to STI, still investigating)
gem 'acts_as_archive', :require => nil
This did'nt worked for me (R1.8.9, r2.3.11+ Bundler ) that is why I forked the gem.
It looks like Bundler require the lib even when :require => nil is passed.
there is a common issue with polymorphic assocation maybe it is yours.
issue 24 + patch : #26
:require => nil
Thanks elmatou, indeed it was the polymorphic association issue.
:require => nil works for me. Rails 3
@winton, can you merge elmatou's changes into master?