Hãy nói rằng tôi có một mô hình Virtus User
với một thuộc tính boolean active
:Sử dụng thuộc tính boolean phương pháp helper khi kéo dài từ Virtus.model on the fly
class User
include Virtus.model
attribute :active, Boolean, default: false, lazy: true
end
Sau đó, tôi có thể sử dụng một phương pháp helper active?
:
User.new.active? # => false
User.new(active: true).active? # => true
Nhưng khi tôi cố gắng extend
từ Virtus.model
và xác định thuộc tính boolean khi đang bay:
class User; end
user = User.new
user.extend(Virtus.model)
user.attribute(:active, Axiom::Types::Boolean, default: false, lazy: true)
user.active = true
và sử dụng phương thức trợ giúp active?
Tôi nhận được một ngoại lệ là NoMethodError
.
user.active? # => NoMethodError: undefined method `active?' for
Có khả năng sử dụng các phương pháp trợ giúp trong trường hợp này không?
là 'user.active' cũng được đưa ra lỗi? Ý tôi là không có '? ' –
@ Md.FarhanMemon, không có' user.active' nào hoạt động tốt. Nó chỉ là bằng cách sử dụng 'hoạt động?' Trông rất nhiều khác biệt trong cách đó và không khác với kiểm tra logic boolean khác trong ứng dụng. – potashin
Tôi hiểu, lỗi btw đầy đủ là gì? 'phương thức undefined' active? ' cho .....? ' –