我有一个 Rails 模型has_many
items
:
class Plan < ApplicationRecord
extend T::Sig
has_many :items, dependent: :destroy
before_save do
# hyper simple test method to illustrat problem
puts items
end
end
然而,冰糕似乎与has_many :items
. 当我运行 Sorbet 类型检查时,我收到以下错误:
$ srb tc
app/models/plan.rb:11: Method items does not exist on T.class_of(Plan) https://srb.help/7003
11 | items
^^^^^
Did you mean:
sorbet/rails-rbi/models/plan.rbi:86: Plan::GeneratedAssociationMethods#items
86 | def items; end
Sorbet 的问题的答案是肯定的——我的意思是那种方法。哪里来的混乱?为什么.items
RBI 文件中的定义不能满足 Sorbet 知道该方法定义在哪里的需要?