ruby – 从字符串中设置常量值

ruby – 从字符串中设置常量值,第1张

概述我在rails应用程序中有一些域数据,我正在尝试为其创建一些常量.这是我在Dan Chak的Enterprise Rails第7章中遇到的问题.我做了以下事情: G = Rating.find_by_rating_code('G') 然后当我使用Rating :: G时,返回适当的评级记录.这非常有效.我的问题出现是因为我有150个评级代码.因此,我没有为每个评级代码键入上面的代码行,而是希望使用 我在rails应用程序中有一些域数据,我正在尝试为其创建一些常量.这是我在Dan Chak的Enterprise Rails第7章中遇到的问题.我做了以下事情:

G = rating.find_by_rating_code('G')

然后当我使用rating :: G时,返回适当的评级记录.这非常有效.我的问题出现是因为我有150个评级代码.因此,我没有为每个评级代码键入上面的代码行,而是希望使用一些元编程来避免使用大量冗余代码来混淆我的模型.因此,我尝试了以下内容.

ratingSCODES = %w(G A AB TR P ...)class << selfratingSCODES.each do |code|code.constantize = rating.find_by_rating_code(code)endend

不幸的是,我得到了一个未初始化的常量错误,无法弄清楚我哪里出错了.我是否以正确的方式接近这一点.我也试过使用const_get,但似乎也没有用.

根据下面的建议,我也尝试过使用

code.const_set = rating.find_by_rating_code(code)

这产生了以下错误:

undefined method `const_set=' for "G":String
解决方法 使用 const_set

class rating   ratingSCODES = %w{ G A AB TR P }   ratingSCODES.each do |code|     const_set code,code   endend#=> ["G","A","AB","TR","P"] p rating::G#=> "G"
总结

以上是内存溢出为你收集整理的ruby – 从字符串设置量值全部内容,希望文章能够帮你解决ruby – 从字符串中设置常量值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1286716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存