V kolejích, jak mohu aktualizovat pole formuláře v modelu?

hlasů
0

Pojďme předstírat, že chcete nastavit všechna pole I specifikovat jako = „žába“

V modelu mohu nastavit každou z nich ručně pomocí:

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

Ale jak jsem to tím, že názvy polí v poli?

Když zkusím

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

To nefunguje. Nějaké návrhy?

Položena 16/06/2009 v 08:40
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Zkuste použít sendmetodu:

fields_array=['field1','desc_field','fieldx']    
fields_array.each { |field|    
  self.send("#{field}", 'frog')
}
Odpovězeno 16/06/2009 v 08:52
zdroj uživatelem

hlasů
2

John Topley odpověď výše, je v podstatě správné, ale protože chcete přiřadit hodnoty, které chcete dělat něco jako:

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

Poznámka přidané rovnítko. S tím, co děláte self.field1='frog', nikoli self.field1('frog').

Odpovězeno 16/06/2009 v 10:47
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more