Ransack: The gem forces ActiveRecord::Base loading

Created on 1 Jun 2017  路  3Comments  路  Source: activerecord-hackery/ransack

Hi guys,

thanks for the gem.

I noticed strange thing within my Rails 5.0.1 application.
Then I found the same issue already was discussed in Rails community.

I found out that in my application it was ransack who forces ActiveRecord::Base loading.

I placed this code in my bin/rails to trace class definition:

trace = TracePoint.new(:class) do |tp|
  if tp.path == '/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activerecord-5.0.1/lib/active_record/base.rb'
    puts caller.join("\n")
    raise # to exit immediately
  end
end
trace.enable

It gives me

/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activerecord-5.0.1/lib/active_record/base.rb:24:in `<module:ActiveRecord>'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activerecord-5.0.1/lib/active_record/base.rb:24:in `<top (required)>'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `block in require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:259:in `load_dependency'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/dependencies.rb:293:in `require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ransack-1.8.2/lib/ransack.rb:13:in `<module:Ransack>'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/ransack-1.8.2/lib/ransack.rb:7:in `<top (required)>'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:82:in `require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:82:in `block (2 levels) in require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:77:in `each'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:77:in `block in require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:66:in `each'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:66:in `require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler.rb:108:in `require'
/Users/aleksey/projects/net/netology/config/application.rb:8:in `<top (required)>'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:156:in `require'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:156:in `require_application_and_environment!'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:77:in `console'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/railties-5.0.1/lib/rails/commands.rb:18:in `<top (required)>'
bin/rails:18:in `require'
bin/rails:18:in `<main>'
/Users/aleksey/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:85:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'ransack'. (Bundler::GemRequireError)

When I comment gem 'ransack' in my Gemfile everything works fine, i.e. ActiveRecord::Base.belongs_to_required_by_default == true.

Is there any way to use active_support load hooks?

Thank you.

Most helpful comment

1.8.3 has been released.

All 3 comments

I found #719 which aims to solved this issue.
But there was no release since it has been merged.
I tried to use master branch, it solves the issue.
Do you have any plans about new release?

Yes the new release will be out soon. Sorry for the delay: there is a cleanup going on.

1.8.3 has been released.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

maduhaime picture maduhaime  路  5Comments

llopez picture llopez  路  4Comments

mbajur picture mbajur  路  5Comments

seanfcarroll picture seanfcarroll  路  4Comments

zenati picture zenati  路  4Comments