В Rails как мне обновить поля формы в модели? - PullRequest
0 голосов
/ 16 июня 2009

Давайте представим, что я хочу установить все поля, которые я указываю, чтобы быть = "лягушка"

В модели я могу настроить каждый вручную, используя:

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 ]

2 голосов
/ 16 июня 2009

Ответ Джона Топли, приведенный выше, в основном правильный, однако, поскольку вы хотите присвоить значения, вы хотите сделать что-то вроде:

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

Обратите внимание на добавленный знак равенства. С этим вы делаете self.field1='frog', а не self.field1('frog').

0 голосов
/ 16 июня 2009

Попробуйте использовать метод send:

fields_array=['field1','desc_field','fieldx']    
fields_array.each { |field|    
  self.send("#{field}", 'frog')
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...