Помощник вида Rails3 form_for отображает текущие значения при редактировании.
Я хотел бы заполнить модель некоторыми начальными значениями при создании.Не то же самое начальное значение каждый раз, но фактически копируйте некоторые значения из последней сохраненной записи.
Когда я делаю это и использую помощник form_for для создания формы, ни одно из значений не появляется.
Похоже, что form_for не генерирует атрибуты значения для полей ввода модели, еще не сохраненной?Но я не буду сохранять вновь созданную модель перед отображением формы, потому что: 1. она не будет проверяться, 2. это усложняет семантику отмены, 3. переход от формы приведет к непреднамеренному сохранению записи.
Как получить из нового действия форму, отображающую некоторые динамические значения по умолчанию?
Серьезно.Я читал весь день без ответа.Кажется, что должно быть простое решение, которое я упускаю.
Проблема возникла из-за кода инициализации в модели.Контроллер имел
def new
@post = Post.new
@post.initFromLast
end
Модель имела
def initFromLast
last_post = Post.last
title = last_post.title
summary = last_post.summary
end
Требуемая модель
def initFromLast
last_post = Post.last
write_attribute(:title, last_post.title)
write_attribute(:summary, last_post.summary)
end
Очевидно, что Ruby интерпретировал первую форму как присваивание локальным переменным.