在Rails应用程序中存储一组常量(如国家/地区名称,货币,城市列表)的最佳方法是什么?
我当时正在考虑使用一个名为Constants的模型来存储所有这些数据,以及另一个模型ConstantMaps,该模型是多态的,可以将常量映射到其他各种模型
这是正确的方法吗?
最好有更多带有语义名称的模型,每个模型都具有反映模型应该了解的自身信息的方法。您的模型应该对相关数据进行分组。例如,您可能具有一个位置模型,该模型具有返回国家名称的Location#country和返回城市名称的Location#city之类的方法。货币将是它自己的模型,因为当您考虑必须告知位置有关其位置的事实时,Location#currency毫无意义。
拥有一个名为Constants的单一模型和一个仅用于映射的模型是一个非常糟糕的主意,因为它不会告诉您模型中的内容,更糟糕的是它将包含不相关的数据。将来跟踪错误和扩展功能将更加困难。
数据应存储在数据库中,并具有与型号名称相对应的表。该模型的方法查询数据库并返回期望的数据。如果出于某种原因您不能或不想将常数数据存储在数据库中,则每个模型类都可以将散列存储在CONSTANT变量中(例如CITY_LIST = {australia: ["sydney", "melbourne", "brisbane",...], brazil: ["san paulo", "rio de janeiro",...]}
,方法查询该变量而不是数据库)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句