让我假装我想将我指定的所有字段设置为=“frog”
在模型中,我可以使用以下方式手动设置每个:
self.field1 = 'frog'
self.desc_field = 'frog'
self.fieldx = 'frog'
etc....
但是如何将字段名称放在数组中呢?
当我尝试
时fields_array=['field1','desc_field','fieldx']
fields_array.each { |field|
self.field = 'frog'
}
它不起作用。有什么建议吗?
答案 0 :(得分:2)
John Topley上面的答案基本上是正确的,但是因为你想要分配你想要做的事情的值:
fields_array=['field1','desc_field','fieldx']
fields_array.each { |field|
self.send("#{field}=", 'frog')
}
注意添加的等号。有了这个,你正在做self.field1='frog'
而不是self.field1('frog')
。
答案 1 :(得分:0)
尝试使用send
方法:
fields_array=['field1','desc_field','fieldx']
fields_array.each { |field|
self.send("#{field}", 'frog')
}