Я не знаю, как правильно это сделать, но в моем проекте я сделал это, добавив поле статуса в модель пользователя.Так, например:
- status = 0 - новый пользователь
- status = 1 - администратор отклонил этого пользователя
- status = 2 - администратор запрашивает дополнительную информацию
Затем необходимо создать правильные формы для пользователя на основе поля состояния.Вы можете сделать это в контроллере:
def multistep_form
@user = User.find(params[:id])
case @user.status
when 0
render "form_1"
when 1
render "rejected"
when 2
render "form_2"
else
render "error"
end
end
Или где-то в представлении:
<%= render :partial => "form_{@user.status}" %>
тогда, конечно, вам нужно иметь частичные значения: _form_1
, _form_2
и_form_3
.
Это единственный пример, в реальном решении вам также нужно защитить поле status
от изменения пользователем и добавить некоторые проверки в поле status
, чтобы оно не было чем-то, кроме0, 1 и 2.