I upgraded my project from rails 3.2 to rails 4.2. Everything works fine in local, server, test, precompile assets.
But when I deploy it to production, I get this error when assets:precompile
. I tried it in local, it works ok.
NameError: uninitialized constant ActionView::Helpers::ActiveModelHelper
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionview-4.2.4/lib/action_view/helpers.rb:40:in `<module:Helpers>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionview-4.2.4/lib/action_view/helpers.rb:4:in `<module:ActionView>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionview-4.2.4/lib/action_view/helpers.rb:3:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionview-4.2.4/lib/action_view/base.rb:5:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionview-4.2.4/lib/action_view/view_paths.rb:1:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionpack-4.2.4/lib/abstract_controller/rendering.rb:4:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionpack-4.2.4/lib/action_controller/base.rb:204:in `<class:Base>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionpack-4.2.4/lib/action_controller/base.rb:164:in `<module:ActionController>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionpack-4.2.4/lib/action_controller/base.rb:5:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/cancancan-1.13.1/lib/cancan/controller_additions.rb:394:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/cancancan-1.13.1/lib/cancan.rb:5:in `require'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/cancancan-1.13.1/lib/cancan.rb:5:in `<top (required)>'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/cancancan-1.13.1/lib/cancancan.rb:1:in `require'
/home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/cancancan-1.13.1/lib/cancancan.rb:1:in `<top (required)>'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `require'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `each'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `block in require'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `each'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `require'
/home/app/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.10.6/lib/bundler.rb:134:in `require'
/home/app/ryeboy/releases/20151024080811/config/application.rb:5:in `<top (required)>'
/home/app/ryeboy/releases/20151024080811/Rakefile:5:in `require'
/home/app/ryeboy/releases/20151024080811/Rakefile:5:in `<top (required)>'
I can see the ActionView::Helpers::ActiveModelHelper
file under /home/app/ryeboy/shared/bundle/ruby/2.0.0/gems/actionview-4.2.4/lib/action_view/helpers/
, I tried comment out the line in the lib/action_view/helpers.rb:40
include ActiveSupport::Benchmarkable
include ActiveModelHelper # this line.
include AssetTagHelper
include AssetUrlHelper
Then the error became NameError: uninitialized constant ActionView::Helpers::AssetTagHelper
. So I think this might be some loading sequence problem. Unfortunately, I can't think out a way to debug this. please help.
btw, I'm using ruby 2.0.0, use rvm in server.
Thanks for your help :p