2009-06-16 44 views
0

讓我們假設我想設置我指定要=「青蛙」在Rails中,如何更新模型中的表單域?

在這個模型中,我可以設置每一個手動使用的所有字段:

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

你試圖達到什麼樣的最終結果?你可能不想在控制器中使用這種代碼。 – 2009-06-16 09:50:48

+0

是的,其實代碼是在模型中,謝謝我更新了問題。其實想從表單中清除ms字unicode。在這裏問這個問題stackoverflow.com/questions/998555/但似乎人們被完整的問題所淹沒,因爲沒有人回答。所以認爲有人可能會回答,如果它是在一個更簡單的形式。 – Datatec 2009-06-16 11:40:44

回答

2

以上約翰·託普利的回答基本上是正確的,但是既然你想你想的值賦給做喜歡的事:

fields_array=['field1','desc_field','fieldx']  
fields_array.each { |field|  
    self.send("#{field}=", 'frog') 
} 

注意增加平等標誌。因此,您正在執行self.field1='frog'而不是self.field1('frog')

0

嘗試使用send方法:

fields_array=['field1','desc_field','fieldx']  
fields_array.each { |field|  
    self.send("#{field}", 'frog') 
} 
+0

動作控制器回來了這個錯誤「參數的錯誤數目(1爲0)」 – Datatec 2009-06-16 11:34:49

相關問題