当前位置:  开发笔记 > 编程语言 > 正文

在Rails中向Integer类添加方法的最佳位置在哪里?

如何解决《在Rails中向Integer类添加方法的最佳位置在哪里?》经验,为你挑选了1个好方法。

在Rails中向整数类添加方法的最佳位置在哪里?我想添加一个to_metersto_miles方法.



1> 小智..:

如果您的心脏设置为使用数字(或整数等)类来获取单位转换,那么至少在逻辑上并且具有一些实际值.

首先,创建一个Unit类,用于存储单位类型(米,英尺,立方等)和创建时的值.然后向Numeric添加一组与单元可以具有的有效值对应的方法:这些方法将返回一个Unit对象,其类型记录为方法名称.Unit类将支持一堆to_*方法,这些方法将转换为具有相应单位值的另一个单元类型.这样,您可以执行以下命令:

>> x = 47.feet.to_meters
=> 14.3256
>> x.inspect
=> #

处理它的最佳方法可能是Unit类中的转换类型和表达式矩阵,然后使用method_missing检查给定类型是否可以转换为另一种类型.在numeric类中,使用method_missing询问Unit是否支持给定方法作为单元类型,如果是,则使用numeric作为其值返回所请求类型的单元对象.然后,您可以通过向Unit添加register_type和register_conversion类方法来支持在运行时添加单位和转换,扩展转换矩阵并且Numeric将"自动"获取该功能.

至于放置它的位置,创建一个lib/units.rb文件,该文件还包含Monkey_patch到Numeric,然后在config/environment.rb中初始化它需要lib/units.rb文件.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有