use*_*843 2 ruby setter class instance-variables
我有一个带有方法的类register(key, val)。我正在尝试将其添加key为类的实例变量并将其设置为等于val. 现在我正在尝试使用,self.instance_variable_set(':@' + key, val)但出现此错误:
in `instance_variable_set': `:@table' is not allowed as an instance variable name (NameError)
Run Code Online (Sandbox Code Playgroud)
我在打电话 register('table', {'key' => 'value'})
知道如何正确执行此操作吗?谢谢!
:从您的方法中删除。
self.instance_variable_set('@' + key, val)
而且,self这里可以是多余的。试试instance_variable_set('@' + key, val)。
并且更喜欢使用插值而不是串联。 instance_variable_set("@#{key}", val)
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |