在Rails中如何更新模型中的表单字段?

时间:2009-06-16 09:40:03

标签: ruby-on-rails forms model

让我假装我想将我指定的所有字段设置为=“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'
}        

它不起作用。有什么建议吗?

2 个答案:

答案 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')
}