Ruby on rails 如何定义一个可以被视为布尔值但具有方法的结果类
我正在为身份验证模块添加更多功能,由于某些原因,我无法更改接口,因此结果应在某些if..else条件下使用 我想我可能需要定义一个Result类并将其实例作为Result返回,这个结果可以被视为布尔值,这样使用这个方法的原始项目就不会受到影响,我可以通过调用这个方法获得进一步的信息(例如:validate的原因是false)。我认为下面的方法可以通过返回Ruby on rails 如何定义一个可以被视为布尔值但具有方法的结果类,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在为身份验证模块添加更多功能,由于某些原因,我无法更改接口,因此结果应在某些if..else条件下使用 我想我可能需要定义一个Result类并将其实例作为Result返回,这个结果可以被视为布尔值,这样使用这个方法的原始项目就不会受到影响,我可以通过调用这个方法获得进一步的信息(例如:validate的原因是false)。我认为下面的方法可以通过返回true或false来匹配我的目标 任何想法都是好主意,谢谢 在Ruby中只有false和nil是假值,结果类的实例肯定是真的 true和fal
true
或false来匹配我的目标
任何想法都是好主意,谢谢
在Ruby中只有false
和nil
是假值,结果类的实例肯定是真的
true
和false
在Ruby中是唯一的。它们分别是TrueClass
和FalseClass
的唯一实例。在它们上定义单例方法将影响使用true
或false
的所有其他位置。这可能适用于单线程程序,但可能不适用于多线程程序
如果您不能更改的身份验证API只接受布尔值,那么我认为您没有好的方法来添加进一步的特性,同时保持向后兼容性