Rah*_*eel 1 ruby ruby-on-rails
我想使用public_methodslist 设置类的成员值.但是在下面给出的代码中,"className.member"将不起作用,因为".member"不是ClassName类的成员.
在ruby中有没有办法以这种方式设置成员的价值?
代码如下:
membersArray = className.public_methods
membersArray.each {|x|
member = x.to_s
className.member = "some value"
end
}
Run Code Online (Sandbox Code Playgroud)
foo.bar = 1
Run Code Online (Sandbox Code Playgroud)
这一行本质上是一个bar=带参数的方法的调用1.
foo.bar=(1)
Run Code Online (Sandbox Code Playgroud)
您可以使用send方法动态调用方法
foo.send "bar=", 1
Run Code Online (Sandbox Code Playgroud)
因此,您的代码将被重写为
className.send "#{x}=", 'some value'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |