Coder Social home page Coder Social logo

Comments (14)

stex avatar stex commented on June 14, 2024 8

It doesn't fix the actual issue, but I added a local monkey-patch to get with_model running with Rails 7, maybe it's of use to someone else.

# spec/support/with_model.rb

module WithModel
  class Model
    # Workaround for https://github.com/Casecommons/with_model/issues/35
    def cleanup_descendants_tracking
      if defined?(ActiveSupport::DescendantsTracker) && !Rails.application.config.cache_classes
        ActiveSupport::DescendantsTracker.clear([@model])
      elsif @model.superclass.respond_to?(:direct_descendants)
        @model.superclass.subclasses.delete(@model)
      end
    end
  end
end

from with_model.

airblade avatar airblade commented on June 14, 2024 1

That's much clearer, thanks.

from with_model.

airblade avatar airblade commented on June 14, 2024

Me too. config.cache_classes = true is the default in Rails 7.

from with_model.

maestromac avatar maestromac commented on June 14, 2024

Same here.

from with_model.

waiting-for-dev avatar waiting-for-dev commented on June 14, 2024

See https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-6-1-to-rails-7-0-spring. It needs to be explicitly set to false from Rails 7 when Spring is not used.

from with_model.

airblade avatar airblade commented on June 14, 2024

@waiting-for-dev I read that the opposite way, i.e. it needs to be set to false in Rails 7 when Spring is used.

from with_model.

waiting-for-dev avatar waiting-for-dev commented on June 14, 2024

@waiting-for-dev I read that the opposite way, i.e. it needs to be set to false in Rails 7 when Spring is used.

Yeah, that wording is confusing. See here instead https://guides.rubyonrails.org/configuring.html#config-cache-classes

from with_model.

waiting-for-dev avatar waiting-for-dev commented on June 14, 2024

@airblade, in the end, I think you're right. It should be true in the test environment, and it should only be false when Spring is present, as it'll handle cache by itself. So, yeah, I think this should be fixed from with_model end.

from with_model.

Benoit-Baumann avatar Benoit-Baumann commented on June 14, 2024

I have the same error with Rails 7.0.2 and the new default config.cache_classes = true.

Any chance to have this issue fixed @nertzy ?

from with_model.

Benoit-Baumann avatar Benoit-Baumann commented on June 14, 2024

Thanks for the workaround @stex !

from with_model.

nertzy avatar nertzy commented on June 14, 2024

Does #44 fix this issue?

from with_model.

Benoit-Baumann avatar Benoit-Baumann commented on June 14, 2024

Unfortunately no, I still get the same error... Stex's workaround works like a charm, though.

from with_model.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.