这个问题在这里已经有一个答案:>
adding attributes to a Ruby object dynamically5个
我正在寻找一种在运行时向已经定义的类添加属性的方法,或者更好:
我正在寻找一种在运行时向已经定义的类添加属性的方法,或者更好:
class Client attr_accessor :login,:password def initialize args = {} self.login = args[:login] self.password = args[:password] end end
但是,我有这个哈希
{:swift_bic=>"XXXX",:account_name=>"XXXX",:id=>"123",:iban=>"XXXX"}
我希望这个哈希成为我客户端实例的一部分
client = Client.new :login => 'user',:password => 'xxxxx'
然后有一个神奇的魔法
client @@%$%PLIM!!! {:swift_bic=>"XXXX",:iban=>"XXXX"}
我可以访问
client.swift_bic => 'XXXX' client.account_name => 'XXXX' client.id => 123
我也想保持一个适当的对象结构,如:
Client.new(:login => 'user',:password => 'xxxxx').inspect #<Client:0x1033c4818 @password='xxxxx',@login='user'>
魔术之后
client.inspect #<Client:0x1033c4818 @password='xxxxx',@login='user',@swift_bic='XXXX',@account_name='XXXX' @id => '123',@iban => 'XXXX'>
这将给我一个非常好的和格式良好的json之后
有可能吗
我从一个webservice得到这个哈希,所以我不知道这里是一个新的属性,然后我将不得不更新我的应用程序,每次他们执行他们的服务升级.
所以我试图避免这样做:
感谢chaps.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。