Как заставить hidden_field работать при сбое валидации в Rails 3 - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть скрытое поле в form_for, где я настроил его так:

  = f.hidden_field :building_id, :value => @building

Где @building устанавливается в контроллере в новом действии:

@building = params[:building][:building_id]

При сбое проверки действие create попадает в следующую строку:

format.html { render action: "new" }

и страница отображается, скрытое поле не получает своего значения.

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

  = f.hidden_field :building_id, params[:building][building_id]

но я получаю ошибку, когда делаю это. Что я делаю не так?

1 Ответ

2 голосов
/ 29 декабря 2011

Это потому, что params[:building][:building_id] больше не устанавливается при загрузке страницы после ошибки проверки, так как теперь она сохраняется в params[:building_id]. Что-то вроде @building = params[:building_id] || params[:building][:building_id] должно работать нормально.

...