Rails: проблема методов модели с сохранением - PullRequest
0 голосов
/ 31 марта 2011

В моей форме есть text_area с именем answer_choices, который используется для ввода ответов (разделенных переводом строки):

Some answer
Another answer
Yet another

Поэтому, когда пользователь отправляет форму, я разбираю answer_choices на отдельные ответы для ввода в базу данных, используя answer_choices.split(/\r\n/)

Затем, когда они редактируют форму, я собираю эти отдельные ответы, используя этот метод:

У меня есть следующий метод в моей Question модели:

def answer_choices
  string = ''

  answers.each do |answer|
    string += "#{answer.text.to_s}\n"
  end

  string.strip
end

Это позволяет мне просто сделать <%= f.text_area :answer_choices %> в моем представлении, и я получаю ответы, разделенные переносами строк. Отлично.

Проблема в том, что когда я снова отправляю форму (для обновления записей), этот маленький бит answer_choices.split(/\r\n/), кажется, вызывает этот пользовательский метод вместо того, чтобы брать какие-либо новые данные из поля формы и, таким образом, просто повторно добавляет те же данные, что и раньше.

Так, как я могу иметь свой собственный метод для вывода формы?

1 Ответ

0 голосов
/ 31 марта 2011

Чтобы избежать вызова вашего пользовательского метода, вы должны использовать хэш атрибутов:

self.attributes['answer_choices'].split(/\r\n/)
...