I am trying to update my ROR app which is currently Ruby 1.9.3 and Rails 4.2.4
I am trying to move to Ruby 2.2.2 and Rails 4.2.4, which is the minimum to get MongoDB 3.2 to run.
When I changed my Gemfile to Ruby 2.2.2 and run bundle install, and bundle update I get rails (~> 4.2.4) was resolved to 4.2.10
Why is it resolving it to 4.2.10 when I have rails set to (~> 4.2.4) in my Gemfile?
Gemfile below.
source 'https://rubygems.org'
ruby '2.2.2'
gem 'rails', '~> 4.2.4'
gem 'mongo', '~> 2.1.1'
gem 'bson_ext', '~> 1.12.1'
gem 'mongoid', '~> 5.0.0'
# mongoid seemed to want these to run the generator
gem 'execjs', '~> 2.6.0'
gem 'therubyracer', '~> 0.12.2'
gem 'devise', '~> 3.5.2'
gem 'grape', '~> 0.13.0'
#gem 'grape-swagger'
gem 'thin', '~> 1.6.4'
gem 'geocoder', '~> 1.2.11'
#gem 'mongoid_geospatial'
gem 'kaminari', '~>1.0.0' # pagination
#gem 'iron_worker_ng', '~> 1.6.6'
gem 'iron_worker', '~> 3.1.0'
gem 'newrelic_rpm', '~> 3.13.2.302'
gem 'newrelic-grape', '~> 2.0.0'
#gem "opentok"
gem 'mandrill-api', '~> 1.0.53'
gem 'aws-sdk', "~> 1"
gem 'nexmo', '~> 3.0.0'
gem 'rmagick', '~> 2.15.4', :ref => '69db6635c2630ffd63c1858646cbc280226f31a7bc34e1c9d1322c2c73e1e386'
#gem 'stripe', :git => 'https://github.com/stripe/stripe-ruby', :ref =>'df2e36287d88726c6a03ec6c1fdc19b5d6e2b274'
gem 'stripe', '~> 1.22.0'
gem 'gibberish', "~> 2.0.0"
#gem 'mongoid-encrypted-fields', :path => "./vendor/plugins/mongoid-encrypted-fields-1.2.2"
gem 'twilio-ruby', '~> 4.4.0'
gem 'gcm', '~> 0.1.0'
gem 'chronic', '~> 0.10.2'
gem 'oauth2', '~> 1.1.0'# for stripe connect
gem 'aescrypt', '~> 1.0.0'
gem 'houston', '~> 2.2.3'
gem 'hashids', '~> 1.0.3'
gem 'rack-cors', '~> 0.4.0', :require => 'rack/cors'
gem 'mail', '~> 2.6.4'
gem 'sendgrid-ruby', '~> 1.1.6'
group :production, :staging do
gem 'rails_12factor', '~> 0.0.3'
end
group :development, :test do
gem 'factory_girl_rails', '~> 4.6.0'
gem 'timecop', '~> 0.8.0'
gem 'debugger', '~> 1.6.8'
gem 'typhoeus', '~> 0.8.0'
end
# Gems used only for assets and not required
# in production environments by default.
#group :assets do
# gem 'sass-rails'
# gem 'coffee-rails'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', :platforms => :ruby
# gem 'uglifier'
#end
gem 'uglifier', '~> 2.7.2'
gem 'jquery-rails', '~> 4.0.5'
The squiggly arrow ~> symbol means the last minor version will be updated to the latest version. So 4.2.4 will be resolved to 4.2.X where X is the latest available.
If you want to stick to 4.2.4, use = like gem 'rails', '= 4.2.4'.
Related
Im trying to add ActiveAdmin to a (massive) application. I follow all the steps here:
https://activeadmin.info/0-installation.html#setting-up-active-admin
The installation process was fine. My problem here is with the assets. When I tried to run:
http://localhost:3000/admin/login/
I got an error:
Showing /Users/fmaymone/.rvm/gems/ruby-2.3.0/gems/activeadmin-
1.1.0/app/views/layouts/active_admin_logged_out.html.erb where line #9 raised:
couldn't find file 'jquery3' with type 'application/javascript'
Checked in these paths:
This application is kind of tricky. Its running webpack together with the rails server. I never worked with this kind of configuration.
Theres not a application.js where I can add a require//
I tried doing a npm i jquery too.
Should I put directly inside the webpack the jquery.js?
This is my GemFile
gem 'rails', '4.2.2'
# This needs to be declared earlier than alphabetical order to load properly re: the app.
gem 'paperclip', '~> 5.0.0'
gem 'activeadmin', '~> 1.4', '>= 1.4.3'
gem 'actionpack-action_caching'
gem 'active_model-errors_details'
gem 'active_model_serializers', '~> 0.10.0'
gem 'activerecord-rescue_from_duplicate'
gem 'activerecord-sqlserver-adapter', '~> 4.2.0'
gem 'addressable'
gem 'ahoy_email'
gem 'ahoy_matey'
gem 'airbrake', '~>6.2'
gem 'ajax-datatables-rails'
gem 'asset_sync'
gem 'attachment_on_the_fly'
gem 'aws-sdk', '~> 2.0'
gem 'axlsx', '2.1.0.pre'
gem 'axlsx_rails'
gem 'blazer'
gem 'bootstrap-generators', '~> 3.3.4'
gem 'bootstrap-sass', '~> 3.3.4'
gem 'browser-timezone-rails'
gem 'chronic'
gem 'coffee-rails', '~> 4.1.0'
gem 'countries'
gem 'daemons'
gem 'data_migrate', '~>5.0'
gem 'delayed_job', '~>4.1.5'
gem 'delayed_job_active_record'
gem 'devise'
gem 'dotenv-rails', :groups => [:development, :test]
gem 'double-bag-ftps'
gem 'faraday'
gem 'fog-aws'
gem 'font-awesome-sass', '~> 4.7.0'
gem 'geocoder', '~> 1.5.1'
gem 'hashdiff'
gem 'hashformer'
gem 'hashie'
gem 'htmlentities'
gem 'httparty'
gem 'hubspot-ruby', '~> 0.4.0'
gem 'jbuilder', '~> 2.0'
gem 'jira-ruby'
gem 'jquery-datatables-rails', github: "rweng/jquery-datatables-rails", branch: "master"
gem 'jquery-rails'
gem 'json-schema'
gem 'kaminari'
gem 'libv8', '6.7.288.46.1'
gem 'mailgun-ruby', '~>1.1.6'
gem 'marketingcloudsdk', '~> 1.0'
gem 'mini_racer', '0.2.3', platforms: :ruby
gem 'mjml-rails'
gem 'money-rails', '~>1'
gem 'multipart-post'
gem 'net-scp'
gem 'newrelic_rpm'
gem 'oj'
gem 'oj_mimic_json'
gem 'pg'
gem 'progress_bar'
gem 'rack-cors', :require => 'rack/cors'
gem 'rails-observers', '~> 0.1.2'
gem 'rails_admin', '~> 1.2.0'
gem 'ransack'
gem 'react_on_rails', '~>6'
gem 'rest-client'
gem 'retriable', '~> 3.1'
gem 'roo', '~> 2.7.0'
gem 'roo-xls'
gem 'rubyzip', '~> 1.1.0'
gem 'sass-rails', '~> 5.0.6'
gem 'savon', '~> 2.2.0'
gem 'schema_plus_pg_indexes'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'seed_dump'
gem 'simple_form'
gem 'slither', :git => 'https://github.com/Programatica/slither.git'
gem 'stripe'
gem 'sunspot_rails', '~> 2.2.5'
gem 'sunspot_solr', '~> 2.2.5'# optional pre-packaged Solr distribution for use in development
gem 'taxjar-ruby', require: 'taxjar'
gem 'thin'
gem 'tiny_tds'
gem 'twitter-typeahead-rails'
gem 'uglifier', '>= 1.3.0'
gem 'validates_timeliness', '~> 4.0'
gem 'wannabe_bool'
gem 'whenever', :require => false
gem 'wisper', '~> 2.0.0'
gem 'wisper-rspec', require: false, groups: [:development, :test]
gem 'workflow'
gem "graphql"
gem "graphql-errors"
gem "graphql-batch"
gem "graphql-guard"
gem "nokogiri"
group :production, :staging do
gem 'sprockets-redirect'
end
group :test do
gem 'shoulda-matchers', '~> 3.1', '>= 3.1.1'
gem 'shoulda-callback-matchers', '~> 1.1.1'
gem 'simplecov', :require => false
gem "vcr"
end
group :development do
gem 'web-console', '~> 2.0'
end
group :development, :test do
gem "pry"
gem 'pry-byebug'
gem "guard-rspec"
gem 'spring-commands-rspec'
gem 'graphiql-rails'
gem "puma"
gem 'byebug'
gem 'spring'
gem 'faker'
gem 'rspec'
gem 'rspec-rails'
gem 'rspec_candy'
gem 'factory_bot_rails'
gem 'capybara'
gem 'database_cleaner'
gem 'ffaker'
gem 'to_factory'
gem 'timecop'
gem 'test_after_commit', :group => :test
gem 'webmock'
end
Thanks
You are probably using an old version of jquery-rails which turn out to raise an error. jquery3 is required in the base javascript file, and the support for it was not available before the rails 4.2.0 version in jquery-rails gem. Therefore, I recommend you to check the versions of jquery-rails with rails and activeadmin gem.
This is my first major upgrade of Rails (v4 to v5). I've done minor upgrades, like 4.1.1 to 4.2 etc...
I've upgraded to 5.1.1, and I'm getting this dependency error in the console
Bundler could not find compatible versions for gem "actionmailer":
In Gemfile:
mail_form (= 1.7.0) was resolved to 1.7.0, which depends on
actionmailer (< 5.2, >= 3.2)
rails (>= 5.1.1, ~> 5.1) was resolved to 5.1.1, which depends on
actionmailer (= 5.1.1)
however, I have actionmailer 5.1.1 installed. That looks like what it's asking for. These seems like an noob question, but it looks like rails MUST have actionmailer 5.1.1 and mail_form can have version less than 5.2 or equal/greater than 3.2. 5.1.1 satisfies both these conditions....so what's going on?
It also says this further down
Could not find gem 'rails (>= 5.1.1, ~> 5.1)' in any of the sources.
But I've uninstalled and reinstalled rails 5.1.1 to make sure.
I also tried doing this with 5.0.0 and had the same issue.
This is just one of many, many "Bundler could not find compatible versions for gem " errors in this bundle.
ruby '2.3.1'
source 'https://rubygems.org'
gem 'rails', '~> 5.1', '>= 5.1.1'
gem 'pg'
gem 'sass-rails', '~> 5.0', '>= 5.0.6'
gem 'uglifier', '>= 1.3.0'
gem 'yui-compressor'
# gem 'coffee-rails', '~> 4.1.0'
gem 'twitter-bootstrap-rails', '= 3.2.2'
gem 'bootstrap-sass', '>= 3.3.6'
gem 'draper', '= 3.0.1'
gem 'jquery-rails', '~> 4.1', '>= 4.1.1'
gem "jquery-ui-rails"
gem 'sidekiq', '~> 4.2', '>= 4.2.2'
gem 'redis'
gem 'redis-namespace'
# gem 'turbolinks'
gem 'jbuilder', '= 2.7.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'devise', '= 4.4.0'
gem 'omniauth', '~> 1.3', '>= 1.3.1'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2', '~> 0.3.0'
gem 'omniauth-twitter'
gem 'omniauth-eventbrite', '~> 0.0.6'
gem 'twitter' #for posting to twitter
gem 'koala' #for posting to facebook
gem 'sprockets-rails', '= 3.2.1'
gem 'sprockets', '~> 3.7', '>= 3.7.1'
gem 'geoip', '~> 1.6', '>= 1.6.1'
gem 'jsTimezoneDetect-rails'
gem 'simple_form'
# gem 'client_side_validations', '= 4.2.12' #todo check validations NO RAILS 5
# gem 'client_side_validations-simple_form', '= 3.4.0'
gem 'acts_as_commentable'
gem 'attr_encrypted', '~> 3.0', '>= 3.0.3'
gem 'httparty', '~> 0.14.0'
gem "skylight"
gem 'braintree'
gem 'bitly', '~> 1.1', '>= 1.1.1'
# gem 'ahoy_email', '~> 0.2.3'
# gem 'compass-rails' #needed for chosen
# gem 'chosen-rails', '~> 1.5', '>= 1.5.2'
gem 'bootstrap-table-rails', '~> 1.11'
# gem 'chartjs-ror'
gem 'chartkick', '~> 2.2', '>= 2.2.3'
gem 'groupdate', '= 3.2.0'
gem 'hightop', '~> 0.2.0'
gem 'active_median', '~> 0.1.4'
gem 'bootstrap-tagsinput-rails'
gem 'faker'
gem 'slim'
# gem 'less-rails', '>= 2.8'
# gem 'less-rails', github: 'metaskills/less-rails', branch: 'depends_only_on_less_files'
# gem 'less-rails', git: 'https://github.com/Genkilabs/less-rails' #fix for deprecated Sprockets ImportProcessor
gem 'less-rails-bootstrap'
gem 'therubyracer'
gem 'american_date'
gem 'mail_form', '= 1.7.0'
# gem 'cancancan'
gem 'kaminari', '= 1.1.1'
gem 'bootstrap-kaminari-views', '~> 0.0.5'
gem 'aws-sdk', '~> 2'
gem 'carrierwave-aws'
gem 'carrierwave'
gem 'carrierwave-base64'
gem 'rmagick', '~> 2.16'
gem 'simple_form_fancy_uploads', '~> 0.2.0'
gem 'remotipart', '~> 1.2.1'
gem 'wysiwyg-rails', '= 2.7.3'
gem 'wicked'
gem 'meta-tags', '= 2.7.0'
gem 'acts-as-taggable-on', '~> 4.0'
gem 'acts_as_list', '~> 0.7.2'
gem 'factory_girl_rails'
gem 'friendly_id', '~> 5.1.0'
gem 'paranoia', '~> 2.2', '>= 2.2.1'
gem 'google-analytics-rails', '~> 1.1'
gem 'responders', '= 2.4.0'
gem 'cocoon', '~> 1.2', '>= 1.2.9'
gem 'momentjs-rails', '>= 2.9.0'
gem 'bootstrap3-datetimepicker-rails', '~> 4.17.42'
gem 'tzinfo', '~> 1.2', '>= 1.2.3'
gem 'tzinfo-data'
# gem 'temporal-rails', '~> 0.2.4' #railties dependency
gem 'geocoder', '~> 1.3', '>= 1.3.1'
gem 'timezone', '~> 1.1'
gem 'browser'
gem 'jquery-datatables-rails', '~> 3.4'
gem 'hashie', '~> 3.4', '>= 3.4.4'
# Sinatra - might be required for the Sidekiq web UI?
gem 'sinatra', '~> 1.2'
gem 'paypal-sdk-permissions'
gem 'paypal-sdk-rest' #maybe use
# gem 'paypal-sdk-invoice'
# gem 'resque', '~> 1.26'
# gem 'resque-scheduler', '~> 4.1'
# gem 'active_scheduler', '~> 0.0.3'
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
gem 'gon', '~> 6.0', '>= 6.0.1'
gem 'puma'
gem 'rack-timeout'
gem 'rest-client'
gem 'airbrake', '~> 5.6', '>= 5.6.1'
# gem 'rack-cache', '~> 1.6', '>= 1.6.1'
gem 'rack-attack', '~> 5.0', '>= 5.0.1'
gem 'rack-cors', '~> 0.4.0'
gem 'puma_worker_killer', '~> 0.0.7'
gem 'local-subdomain'
gem 'scout_apm'
gem 'concerned_with', '~> 0.1.0'
# gem 'elasticsearch-rails', git: 'git://github.com/elasticsearch/elasticsearch-rails.git'
# gem 'elasticsearch-model', git: 'git://github.com/elasticsearch/elasticsearch-rails.git'
gem 'pusher', '~> 1.3.1'
group :development do
gem 'better_errors'
# gem 'quiet_assets'
gem 'foreman'
gem 'guard-rspec', require: false
# gem 'bullet', '~> 5.0'
gem 'rake', '~> 11.1', '>= 11.1.1'
gem 'web-console', '>= 2.3.0'
# gem 'derailed_benchmarks', '~> 1.3', '>= 1.3.1'
# gem 'rack-mini-profiler', '~> 0.10.1'
end
group :development, :test do
gem 'rspec-rails','= 3.7.2'
gem 'byebug'
gem 'spring'
gem 'spring-commands-rspec'
gem 'mailcatcher', '~> 0.6.4'
gem 'capybara', '~> 2.7', '>= 2.7.1'
gem 'capybara-screenshot', '~> 1.0', '>= 1.0.13'
gem 'database_cleaner'
gem "email_spec"
gem 'shoulda-matchers'
gem 'rspec-activejob'
gem 'awesome_print'
gem 'lol_dba', '~> 2.1', '>= 2.1.1'
gem 'rb-readline'
# gem 'invoice_samples', :git => "https://github.com/paypal/invoice-sdk-ruby.git"
end
group :test do
gem 'poltergeist'
gem 'selenium-webdriver'
gem 'launchy'
gem 'db-query-matchers'
gem 'timecop'
gem 'codeclimate-test-reporter'
gem 'webmock', '~> 2.1'
end
group :production do
gem 'rails_12factor'
gem 'newrelic_rpm'
gem 'keen'
end
I ended up rebuilding the gem file line by line starting with just rails and pg and then pasting and bundle installing each new line.
I found I was hanging on "Sinatra".
None of the errors I found in bundling the complete gem file appeared in the line-by-line bundle. Sigh.
Before you bundle install, are you making sure to have RVM set to the ruby version you need (rvm use 2.3.1p112)?
You might also try bundle update before install and see if that helps.
Ruby byebug never seems to stop in any of my code. It installed properly without errors. I did a bundle update byebug as well as gem pristine byebug. I start the rails server with this command rails s -e development
Here's the gem file
source 'https://rubygems.org'
#ruby '2.0.0'
gem 'multi_json', '1.7.8'
gem 'rails' #, '4.0.5'
#gem 'activerecord-session_store', github: "rails/activerecord-session_store", branch: 'master'
gem "activerecord-session_store", "~> 0.1.0"
gem 'devise', '3.1.1'
gem 'rolify', '~> 3.4'
gem 'cancan', '~> 1.6.10'
#gem "resque", "~> 2.0.0.pre.1", github: "resque/resque"
gem 'resque', '~> 1.25.1', :require=>"resque/server"
gem 'resque-retry', '~> 1.0.0.a'
gem 'resque-scheduler', '~> 2.5.3', :require => "resque_scheduler/server"
gem 'resque-pool', '~> 0.3.0'
gem 'resque_mailer', '~> 2.2.6'
gem 'god', '~> 0.13.4'
gem 'gravtastic', '~> 3.2.3', :require => "gravtastic"
gem 'aws-ses', '~> 0.6.0', :require => 'aws/ses'
# stripe/payments
gem 'stripe', '~> 1.10.1'
gem 'stripe_event', '~> 1.3.0'
gem 'stripe-rails', '~> 0.2.6'
gem 'koudoku', '~> 0.0.11'
# ultra hook for wen hook testing
gem 'ultrahook', '~> 0.1.3'
# bill data
gem 'sunlight', '~> 1.1.0'
gem 'congress', '~> 0.2.3'
gem 'openstates', '~> 0.0.1'
#admin stuff
# gem 'rails_admin', '~> 0.6.1'
gem 'will_paginate', '~> 3.0.5'
gem "statsd-ruby", :require => "statsd"
gem 'paperclip', '= 3.5.4'
gem 'aws-sdk', '~> 1.5.7'
gem 'roadie', '~> 2.4.3'
gem 'exception_notification', '~> 4.0.1'
gem 'exception_handler', '~> 0.3.45'
gem 'spawnling', '~> 2.1.1'
gem 'acts_as_list', '~> 0.4.0'
gem 'jquery-rails', '~> 3.1.0'
gem "jquery-ui-rails", '~> 4.2.1'
gem 'jquery-timepicker-rails', '~> 1.3.7'
gem 'time_splitter', '~> 1.0.0'
gem 'pg', '~> 0.17.1'
gem 'gibbon', "~> 1.0.4"
gem 'coffee-rails', "~> 4.0.1"
gem 'carmen', "~> 1.0.1"
gem 'nested_form', "~> 0.3.2"
gem 'simple_form', "~> 3.0.2"
gem 'ckeditor', '~> 4.1.0'
gem 'tinymce-rails', "~> 4.0.19"
gem 'fileuploader-rails', '= 3.5'
gem 'email_validator', "~> 1.4.0"
gem "impressionist", "~> 1.5.1"
gem 'rack-timeout', '~> 0.0.4'
gem 'protected_attributes', '~> 1.0.8'
# Gem to embed youtube/vimeo videos
gem 'conred', '~> 0.5.0'
# Gem to implement copy to clipboard functionality via flash
gem 'zeroclipboard-rails', '~> 0.1.0'
gem 'geocoder', '~> 1.1.9'
gem 'rack-ssl-enforcer', '~> 0.2.8'
gem 'newrelic_rpm', '~> 3.9.6.257'
# to put environment variable configurations
gem 'figaro', '~> 1.1.1'
gem 'byebug'
gem 'pry-byebug'
# better way of displaying errors on dev
gem 'better_errors', '~> 2.1.1'
gem 'binding_of_caller', '~> 0.7.2'
#gem 'debugger', '~> 1.6.8'
group :development, :test do
gem 'rspec-rails', '~> 2.14.1'
gem 'timecop', '~> 0.7.1'
gem 'spork', '~> 1.0rc'
gem 'guard', "~> 2.6.0"
gem 'guard-rspec', "~> 4.2.8"
gem 'rb-fsevent', "~> 0.9.3"
gem "jasmine-rails", "~> 0.5.1"
end
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 4.0.0'
gem "compass-rails", "~> 1.1.2"
gem 'uglifier', '>= 1.3.0'
end
I had downgrade to a lower version of byebug and it works. Not sure what incompatibilities there may have been with the latest version. Using 3.5.1 worked for me.
gem 'byebug', '~> 3.5.1'
I'm upgrading a rails 3.0.9 app to 3.2.13 and from ruby 1.8.7 to 1.9.3. Any time I try to access a controller action, I get the following error
Started GET "/myapp/login" for 127.0.0.1 at 2013-07-25 07:10:06 -0600
SystemStackError (stack level too deep):
actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb:70
Rendered /actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.5ms)
Rendered /actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (5.2ms)
Rendered /actionpack-3.2.13/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (22.6ms)
The only way I've been able to get a page to load without error is to clear out the database sessions (rake db:sessions:clear) and then restart the rails server. This allows ONE single request to succeed and then all subsequent requests fail.
I've tried comparing all my core config files to a working 3.2 app and have also tried to upgrade all of my gems.
Here's my current Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.2.13'
gem 'mysql2', '~> 0.3'
gem 'dynamic_form', '1.1.4'
gem 'validates_timeliness', '~> 3.0'
gem 'authlogic', '~> 3.3'
gem 'cancan', '~> 1.6'
gem 'jquery-rails', '~> 1.0.19'
gem 'simple_form', '~> 2.1'
#gem 'rails3-generators', '0.17.4'
gem 'yaml_db', '0.2.2' #
gem 'will_paginate', '~> 3.0'
gem 'activemerchant', '1.26.0', :path => "vendor/gems/activemerchant-1.26.0" #
gem 'active_utils', '~> 1.0'
gem 'httparty', '~> 0.11'
gem 'forgery', '~> 0.5'
gem 'mail', '~> 2.5'
gem 'state_machine', '~> 1.2'
gem 'uuid', '~> 2.3'
gem 'rails_config', '~> 0.3'
gem 'machinist', '2.0'
gem 'memcache-client', '1.8.5'
gem 'fastercsv', '~> 1.5'
gem 'faker', '~> 1.1'
gem 'rack-ssl', '~> 1.3', :require => 'rack/ssl'
gem 'sendgrid', '~> 1.2'
gem 'prawn', '0.12.0'
gem 'friendly_id', '~> 4.0'
gem 'whenever', '~> 0.8', :require => false
gem 'rake', '0.9.2.2' #
gem 'exception_notification', '3.0.1' #
gem 'credit_card_validator', '~> 1.1'
gem 'deadlock_retry', '~> 1.2'
gem 'delayed_job_active_record', '~> 0.4'
gem 'daemons', '1.0.10'
gem 'active_attr', '~> 0.8'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end
group :development, :test do
gem 'mocha', '~> 0.14', :require => false
gem 'vcr', '~> 2.5'
gem 'fakeweb', '1.3.0'
gem 'capistrano', '~> 2.15'
gem 'ruby-debug-ide', '0.4.17', :require => false
gem 'letter_opener', '~> 1.1'
#gem 'better_errors'
gem 'thin'
end
This ended up being caused by this rails issue: https://github.com/rails/rails/issues/3144
Changing this in the model from:
include Rails.application.routes.url_helpers
To:
Rails.application.routes.url_helpers.path_that_i_was_referencing_in_a_model
I'm upgrading my app from 3.0.9 to 3.2.1 (ruby 1.9.3-p0, rvm, bundler) and one thing that I haven't been able to track down yet is this problem. I have a controller spec (in spec/controllers) that renders views for each example. The template that it renders can have any undefined method (like calling "- blahblah" in the haml) and it causes the test to hang for over 30 seconds. Here is the error:
undefined local variable or method `blahblahblah' for #<#<Class:0x007fa84f76cc90>:0x007fa849c578c8>
I ran the debugger and the hang happened when trying to log the error itself. This happens in activesupport-3.2.1/lib/active_support/notifications/instrumenter.rb line 22. So is this Rails' fault, haml's fault, or some other library?
Here is my Gemfile just in case something I am using may be the problem:
source 'http://rubygems.org'
source 'http://gems.github.com'
source 'http://gemcutter.org'
gem 'rails', '3.2.1'
gem 'rake', '~> 0.9.2.2'
gem 'mysql2', '~> 0.3.11'
gem 'htmldoc'
gem 'haml', '~> 3.1.4'
gem 'sass', '~> 3.1.4'
gem 'hpricot'
gem 'curb'
gem 'mini_magick'
gem 'liquid', '~> 2.3.0'
gem 'httparty', '~> 0.8.1'
gem 'linkedin', '0.1.7', :require => 'linkedin'
gem 'twitter', '~> 2.0.2', :require => 'twitter'
gem 'mime-types', '>=1.16', :require => 'mime/types'
gem 'oauth'
gem 'roxml'
gem 'nokogiri'
gem 'sax-machine'
gem 'googlecharts', '1.6.7', :require => 'gchart'
gem 'pdf-reader', '~> 0.9.0'
gem 'paper_trail'
gem 'rubyzip', '0.9.4', :require => 'zip/zip'
gem 'activemerchant', '~> 1.20.2', :require => 'active_merchant'
gem 'compass', '~> 0.11.5'
gem 'compass-rgbapng', '0.1.1', :require => 'rgbapng'
gem 'fancy-buttons', '~> 1.1.1'
gem 'ruby-openid'
gem 'RedCloth', '~> 4.2.9'
gem 'koala', '~> 1.0.0'
gem 'scoped_search', '~> 2.3.6'
gem 'wicked_pdf', '0.7.0'
gem 'devise', '~> 2.0.0'
gem 'paperclip', '~> 2.5.0'
gem 'aws-sdk' # required for paperclip
gem 'whois', '~> 2.0.4'
gem 'validates_timeliness', '~> 3.0.8'
gem 'will_paginate', '~> 3.0.2'
gem 'hoptoad_notifier', '~> 2.4.11'
gem 'savon', '~> 0.9.2'
gem 'escape_utils'
gem 'ajaxful_rating', '3.0.0.beta3'
gem 'acts_as_list', '~> 0.1.3'
gem 'despamilator', '~> 2.0'
gem 'prawn', '~> 0.12.0', :submodules => true
gem 'net-dns', '~> 0.6.1'
gem 'authlogic', '~> 3.1.0'
gem 'myspaceid-sdk', '~> 0.1.11', :require => 'myspace'
gem 'in_place_editing', '~> 1.1.2'
gem 'deadlock_retry', '~> 1.1.2'
gem 'query_trace', '~> 0.1.1'
gem 'aasm', '~> 3.0.2'
gem 'vanity', '~> 1.7.1'
gem 'prototype-rails', '~> 3.2.1'
group :development, :test do
gem 'rspec-rails', '~> 2.8.1'
gem 'rspec'
# one-liner to install these properly: bash < <(curl -L https://raw.github.com/gist/1333785)
gem 'linecache19', '0.5.13'
gem 'ruby-debug-base19', '0.11.26'
gem 'capistrano'
end
group :test do
gem 'factory_girl_rails'
gem 'syntax'
gem 'timecop', '~> 0.3.5'
gem 'capybara'
gem 'database_cleaner'
gem 'cucumber-rails', '~> 1.2.1'
gem 'cucumber'
gem 'launchy'
end
Thanks!
I found the answer to this in the Rails issue tracker on Github (it's still an open bug as of this time). The problem turned out to be that when an error was raised, an instance of ActionDispatch::Routing::RouteSet was inspected, which apparently caused the object to inspect every item it was holding onto. So, the larger the RouteSet, the longer the #inspect took. Here is the fix:
module ActionDispatch
module Routing
class RouteSet
alias inspect to_s
end
end
end
For more info on the bug, see here.