假设我有一个User
带有布尔属性的 Virtus 模型active
:
class User
include Virtus.model
attribute :active, Boolean, default: false, lazy: true
end
然后我可以使用一个辅助方法active?
:
User.new.active? # => false
User.new(active: true).active? # => true
但是当我尝试动态定义一个布尔属性时extend
:Virtus.model
class User; end
user = User.new
user.extend(Virtus.model)
user.attribute(:active, Axiom::Types::Boolean, default: false, lazy: true)
user.active = true
并使用辅助方法active?
我得到了一个NoMethodError
例外。
user.active? # => NoMethodError: undefined method `active?' for
在这种情况下是否有可能使用辅助方法?