将变量用于运算符/方法

时间:2012-05-24 23:05:44

标签: ruby datamapper

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

所以不要这样:

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

此外,这里的术语是什么?

2 个答案:

答案 0 :(得分:1)

我没有尝试过,但Computer.new params应该有用 但请注意mass assignment(它不是特定于DataMapper)。

答案 1 :(得分:0)

使用prop_name=的一个简单方法(不是特定于DataMapper,但假设采用send方法):

c.send("#{key}=".to_sym, val.to_s)