我正在使用 ActiveResource 来使用 REST 服务。该服务的 xml 如下所示:
<Person>
<FirstName>Kevin</FirstName>
<LastName>Berridge</LastName>
</Person>
ActiveResource 可以很好地解析它,但它逐字使用名称。所以模型类将如下所示:
p = Person.find(1)
p.FirstName
p.LastName
我更希望它遵循 Ruby 命名约定并且看起来像:
p = Person.find(1)
p.first_name
p.last_name
ActiveResource 有办法做到这一点吗?有没有办法可以连接到 ActiveResource 并添加它?
我不知道更改 ActiveResource 命名属性的方式的快速方法,但您可以实现method_missing
使用您喜欢的拼写访问现有属性:
def method_missing(name, *args, &block)
send name.to_s.classify.to_sym, *args, &block
end
或者,您可以通过迭代来动态定义交替命名的方法attributes.keys
并使用define_method
,虽然我不确定when在你的对象的生命周期中你会这样做(构造函数?)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)