我想要做
current_user.field = User::????????
?
Where ??????????
就是我想要的
这就是我想做的
Given /^"([^\"]*)" is a(?:|n) "([^\"]*)"$/ do |arg1, arg2|
cur_user = User.find(:first, :conditions => ['name = ?', arg1])
cur_user.update_attributes(:role => User::arg2.constantize)
end
虽然 Constantize 不适用于此用途,但我确实知道它可以在 Object.var.constantize 上下文中工作
您想要解决的问题是什么?以这种方式使用常量是一种代码味道,如果您有一组枚举值或要遍历的配置,您可能应该使用 ActiveHash 之类的东西。
如果您确实需要以这种方式解决问题,请查看 const_define?() 和 const_get() 。 const_get() 将允许您对符号/字符串常量名称进行动态值调用,而无需对其进行常量化。
http://ruby-doc.org/core/classes/Module.html#M001689 http://ruby-doc.org/core/classes/Module.html#M001689
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)