我正在寻找一种方法来从字符串中分配模型属性。这是在具有不同属性的多个模型共享的关注之内,所以我不能仅仅强制给属性名称编码。从字符串中分配模型属性的替代方法
我在使用一个字符串没有问题检索属性“发送”:
self.send("#{attribute_name}")
,但我有难度指定字符串中的属性。 E.g
self."attribute_name" = "<user input>"
可怕的eval函数做什么,我需要的,但它显然是可怕的不安全:
eval("self.#{attribute_name} = '<user input>'")
有我缺少的是可以实现这个没有的eval函数?或者我的方法都是错误的,我应该回到制图板?谢谢。
真棒正是我需要的 - 太感谢你了! – RichardAE 2014-10-07 12:42:49
请注意,如果方法不存在或不公开,public_send会引发异常。 – Jesper 2014-10-07 12:44:48
刚刚看到您的编辑 - 这看起来像一个伟大的实施,再次感谢!当它让我(显然是7分钟)时,我将它标记为答案。 – RichardAE 2014-10-07 12:45:53