此问题是由于在使用 ActiveModel::Model
时,Sorbet 无法提前知道 validates
方法的存在。解决此问题的方法是在文件中增加类型标注。
例如,考虑以下代码:
require 'active_model'
class Person
include ActiveModel::Model
attr_accessor :name, :email
validates :name, presence: true
validates :email, presence: true
end
为了解决此问题并让 Sorbet 正确处理类型检查,需要在类上面添加类型标注,如下所示:
require 'active_model'
# typed: strict
class Person
include ActiveModel::Model
extend ActiveModel::Naming
include ActiveModel::Conversion
attr_accessor :name, :email
validates :name, presence: true
validates :email, presence: true
def persisted?
false
end
end
在增加类型标注后,Sorbet 将能够正确处理类型检查,包括在 Person
类中使用 validates
方法。
上一篇:包含组件会隐藏网页上的其他元素。
下一篇:包含“&”符号的XML文件