1

您如何通过变量访问运算符/方法?

所以代替这个:

c = Computer.new
c.computer_name = "bla"
c.operating_system = "Windows XP"
c.user_name = "joesmith"
c.save

(还有更多)

我想使用哈希并动态分配值:

c = Computer.new
params.each do |key,val|
    c."#{key}" = val.to_s
end
c.save

另外,这里的正确术语是什么?

4

2 回答 2

1

我没试过,但Computer.new params应该可以。
不过要小心批量分配(它不是特定于 DataMapper)。

于 2012-05-24T23:12:15.727 回答
0

一种简单的方法(不是 DataMapper 特定的,而是假设一种prop_name=方法)是使用send

c.send("#{key}=".to_sym, val.to_s)
于 2012-05-24T23:11:51.640 回答