我有一个方法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)
我打电话给register('table', {'key' => 'value'})
知道怎么做得好吗?谢谢!
答案 0 :(得分:4)
从您的方法中删除:
。
self.instance_variable_set('@' + key, val)
此外,self
在这里可能是多余的。试试instance_variable_set('@' + key, val)
。
并且更喜欢使用插值而不是连接。 instance_variable_set("@#{key}", val)