Giter Site home page Giter Site logo

Comments (4)

pocke avatar pocke commented on August 10, 2024 1

UnknownTypeNameError: name=ApplicationRecord

generate_rbs_for_model rake task generates RBSs only for not abstract classes. Because it refers to RDBMS's schema information, and abstract classes don't have a schema.

RBS Rails isn't responsible for abstract classes. If you need RBS for them, you can write the RBSs by hand or generate them with rbs prototype rb that rbs gem provides.

UnknownTypeNameError: name=::ActiveStorage

Currently RBS Rails haven't supported ActiveStorage yet. And the priority is not high.
So, if you need the type of ActiveStorage, you can write it yourself.

By the way, ActiveStorage does not inherit ActiveRecord::Base, and it is not a class.
https://github.com/rails/rails/blob/fbe2433be6e052a1acac63c7faf287c52ed3c5ba/activestorage/lib/active_storage.rb#L36

UnknownTypeNameError:** name=::ActsAsTaggableOn

What is ActsAsTaggableOn? Is it a gem? https://github.com/mbleigh/acts-as-taggable-on
RBS Rails isn't responsible for gems except for rails.
So, you can write RBSs for them yourself. Or you can find gems from the official RBS repo (but now it has only a few gems).

from rbs_rails.

pocke avatar pocke commented on August 10, 2024 1

By the way, I think we need more documentation to introduce RBS Rails and Steep. I'll work on it. #68

from rbs_rails.

connorshea avatar connorshea commented on August 10, 2024 1

I'm running into very similar errors when trying to introduce RBS to my Rails app:

vendor/rbs/gem_rbs/gems/actionpack/6.0.3.2/actionpack-generated.rbs:2633:6...2633:21	UnknownTypeNameError: name=Mutex_m
vendor/rbs/gem_rbs/gems/activerecord/6.0.3.2/activerecord-generated.rbs:4547:6...4547:21	UnknownTypeNameError: name=Mutex_m
vendor/rbs/gem_rbs/gems/activerecord/6.0.3.2/activerecord-generated.rbs:18024:6...18024:21	UnknownTypeNameError: name=Mutex_m
vendor/rbs/gem_rbs/gems/activesupport/6.0.3.2/activesupport-generated.rbs:2455:2...2455:31	UnknownMethodAliasError: class_name=::Date, method_name=plus_without_duration
vendor/rbs/gem_rbs/gems/activesupport/6.0.3.2/activesupport-generated.rbs:8886:8...8886:34	UnknownTypeNameError: name=::Logger::Severity
vendor/rbs/gem_rbs/gems/activesupport/6.0.3.2/activesupport-generated.rbs:9014:2...9033:5	UnknownTypeNameError: name=::Logger
vendor/rbs/gem_rbs/gems/activesupport/6.0.3.2/activesupport-generated.rbs:9029:4...9032:7	UnknownTypeNameError: name=::Logger::Formatter
vendor/rbs/gem_rbs/gems/activesupport/6.0.3.2/activesupport-generated.rbs:9695:6...9695:21	UnknownTypeNameError: name=Mutex_m
sig/app/models/active_storage/attachment.rbs:1:0...87:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/attachment.rbs:89:0...94:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/attachment.rbs:96:0...97:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/blob.rbs:1:0...127:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/blob.rbs:129:0...134:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/blob.rbs:136:0...137:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/variant_record.rbs:1:0...59:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/variant_record.rbs:61:0...66:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/active_storage/variant_record.rbs:68:0...69:3	UnknownTypeNameError: name=::ActiveStorage
sig/app/models/company.rbs:1:0...85:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/doorkeeper/access_grant.rbs:1:0...114:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/access_grant.rbs:116:0...121:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/access_grant.rbs:123:0...124:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/access_token.rbs:1:0...125:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/access_token.rbs:127:0...132:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/access_token.rbs:134:0...135:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/application.rbs:1:0...152:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/application.rbs:154:0...159:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/doorkeeper/application.rbs:161:0...162:3	UnknownTypeNameError: name=::Doorkeeper
sig/app/models/engine.rbs:1:0...77:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/event.rbs:1:0...126:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/external_account.rbs:1:0...93:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/favorite_game.rbs:1:0...79:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game.rbs:1:0...239:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_developer.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_engine.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_genre.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_platform.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_publisher.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_purchase.rbs:1:0...191:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_purchase_platform.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/game_purchase_store.rbs:1:0...76:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/genre.rbs:1:0...77:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/platform.rbs:1:0...85:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/relationship.rbs:1:0...79:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/series.rbs:1:0...73:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/statistic.rbs:1:0...274:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/steam_app_id.rbs:1:0...48:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/steam_blocklist.rbs:1:0...81:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/store.rbs:1:0...61:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/user.rbs:1:0...363:3	UnknownTypeNameError: name=ApplicationRecord
sig/app/models/wikidata_blocklist.rbs:1:0...81:3	UnknownTypeNameError: name=ApplicationRecord

I think rbs_rails should definitely create a signature file for ApplicationRecord at the very least, since that's something every Rails app will have. I'd definitely like better docs for how to set this up :)

Thank you for your work, @pocke!

from rbs_rails.

pocke avatar pocke commented on August 10, 2024

@connorshea Thanks for your feedback!

I think it needs to generate all superclasses of ActiveRecord models, including ApplicationRecord.
For example:

# Ruby files
class User < ApplicationRecord
end

class Article < AnotherApplicationRecord
end

# RBS files
class ApplicationRecord < ActiveRecord::Base
end

class AnotherApplicationRecord < ActiveRecord::Base
end

class User < ApplicationRecord
end

class Article < AnotherApplicationRecord
end

I'll implement it with #77 because #77 also needs to generate superclasses.


By the way, I guess you need to require some library, such as Mutex_m, Logger, etc.

And I haven't generated ActiveStorage's RBS yet, so you need to write the RBS by hand for now 🙏.

from rbs_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.