Code Monkey home page Code Monkey logo

Comments (12)

hdoan741 avatar hdoan741 commented on July 26, 2024 1

The documentation change is merged

from sorbet-rails.

hdoan741 avatar hdoan741 commented on July 26, 2024

from sorbet-rails.

franciscoj avatar franciscoj commented on July 26, 2024

You're totally right.

I think I've managed to fix it by moving gem 'sorbet-rails' on the Gemfile from the group :development block to the general group.

Thanks a lot!

from sorbet-rails.

International avatar International commented on July 26, 2024

I have sorbet-rails in the general group, but I receive the same issue with private constant being referenced.

EDIT: I notice that in development mode, the inherited hook does not fire, while in production mode it does. Guessing it's because of eager_load?

from sorbet-rails.

franciscoj avatar franciscoj commented on July 26, 2024

I can confirm that moving it to the general group fixed the issue for me. Besides the code is now running on CI and on production with some MyModel::ActiveRecord_Association typed methods.

@International what I did to see what was happening on my case was to:

bundle open sorbet-rails

Go to the railties file and add a byebug on the inherited hook.

Then starting the rails console on development (where it worked) and on test, where it didn't. That way I realised what the issue was.

Not sure it can help you debug your case... but you never know!

Guessing it's because of eager_load

I doubt that could be the case, take into account that these patches sorbet-rails do are hooked to certaing loading events which are fired when things like ActiveRecord::Base load. It would mean that your app isn't loading those, which would be really weird.

If you wanted to confirm you could add an initializer in the same fashion as sorbet-rails does and check if it gets called or not.

from sorbet-rails.

International avatar International commented on July 26, 2024

Hi @franciscoj , thanks for the tip, I did that :)
On one side, what I noticed is that the hook only gets called for about 10 out of 200 models, in development mode, on the other it looks like the railtie should probably be required kind of early so that models coming from gems would also get the hook?
I noticed that also for models defined in gems, the constant is private.

from sorbet-rails.

franciscoj avatar franciscoj commented on July 26, 2024

I noticed that also for models defined in gems, the constant is private.

AFAIK for models coming from gems you need to use plugins, like the ones described here https://github.com/chanzuckerberg/sorbet-rails#enabling-built-in-plugins

But I'm afraid I don't know how to add new ones or create your own plugins.

from sorbet-rails.

International avatar International commented on July 26, 2024

I will try to play around with load order, see if I can force it to get it loaded. Let you know what I find. Thanks

from sorbet-rails.

hdoan741 avatar hdoan741 commented on July 26, 2024

from sorbet-rails.

hdoan741 avatar hdoan741 commented on July 26, 2024

from sorbet-rails.

hdoan741 avatar hdoan741 commented on July 26, 2024

from sorbet-rails.

hdoan741 avatar hdoan741 commented on July 26, 2024

FYI there is a PR to improve the documentation around this #214

from sorbet-rails.

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.