2009-06-16 8 views
0

Nehmen wir an, ich alle Felder IIn Rails wie aktualisiere ich Formularfelder im Modell?

Im Modell sein = „Frosch“ angeben festlegen möchten kann ich jeden manuell eingestellt werden:

self.field1 = 'frog' 
self.desc_field = 'frog' 
self.fieldx = 'frog' 
etc.... 

Aber wie kann ich dies durch die Indienststellung Feldnamen in einem Array?

Wenn ich versuche,

fields_array=['field1','desc_field','fieldx']  
fields_array.each { |field|  
    self.field = 'frog' 
}   

Es funktioniert nicht. Irgendwelche Vorschläge?

+0

Was ist das Endergebnis, das Sie erreichen möchten? Wahrscheinlich möchten Sie diese Art von Code nicht in einem Controller. –

+0

Ja, eigentlich ist der Code im Modell, danke ich habe die Frage aktualisiert. Eigentlich möchte ich Word Unicode aus dem Formular löschen. Die Frage hier gestellt stackoverflow.com/questions/998555/ Aber scheint wie Menschen wurden von der vollen Frage überwältigt, weil niemand antwortete. dachte also jemand könnte antworten, wenn es in einer einfacheren Form wäre. – Datatec

Antwort

2

John Topley Antwort oben ist grundsätzlich richtig, aber da SieFormal Werte, die Sie wollen zuweisen will, wie etwas zu tun:

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

Hinweis des addierte gleich Schild. Damit machst du self.field1='frog' statt self.field1('frog').

+0

Guter Fang. Ich war mir der genauen Syntax für die Zuweisung nicht sicher und habe keinen Ruby-Interpreter zur Hand. –

0

Versuchen Sie, die send Methode:

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

Action Controller kommt mit diesem Fehler zurück "falsche Anzahl von Argumenten (1 für 0)" – Datatec

Verwandte Themen