簡體   English   中英

Sorbet-rails 不為 rails has_many、belongs_to 等生成 RBI

[英]Sorbet-rails not generating RBI's for rails has_many, belongs_to, etc

也許我錯過了初始化過程中的某些內容,但是sorbet-rails似乎無法為某些默認的 rails 方法(例如has_manybelongs_tovalidates等)生成方法。 我可以看到生成了相應的生成關聯,但是我收到類型抱怨主要方法不存在。

例如像這樣的 class :

class Role < ApplicationRecord
  has_and_belongs_to_many :users, :join_table => :users_roles

我可以在 role.rbi 中看到自動生成的印記

  sig { returns(::User::ActiveRecord_Associations_CollectionProxy) }
  def users; end

但是,這是我在檢查類型時遇到的錯誤:

Method has_and_belongs_to_many does not exist on T.class_of(Role) https://srb.help/7003
     3 |  has_and_belongs_to_many :users, :join_table => :users_roles
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

此錯誤是sorbet不知道has_and_belongs_to_many方法存在的錯誤。 通常這是由sorbet本身提供的。 我可以看到這種方法的簽名是在 sorbet-typed 的activerecord.rbi中定義的。 在您的倉庫中,它應該位於此路徑下:

sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi

您可以檢查該文件是否存在於您的存儲庫中嗎? 如果沒有,您可以嘗試運行srb rbi sorbet-typed (按照rbi files doc )

Method has_and_belongs_to_many does not exist on T.class_of(Role) https://srb.help/7003
     3 |  has_and_belongs_to_many :users, :join_table => :users_roles
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM