Переменные экземпляра, установленные в представлении, не попадут в модель, по крайней мере, напрямую.Проблема, которую вы описываете - условная часть - это то, с чем мы просто пытались справиться сегодня.
Я думаю, вам лучше всего иметь attr_accessor
на вашей модели, которую вы можете установить при создании контроллера.обновить, что бы ни делали - это то, что не должно быть установлено в представлении.Оказавшись в вашей модели, вы можете иметь метод, который проверяет значение этого атрибута в ваших if
условиях для проверки.Определенно, не передавайте это как скрытое поле из вашей формы.Вы не хотите доверять таким вещам, которыми пользователь может манипулировать.
Ответ на комментарий:
Если вы добавите step
в качестве attr_accessor
в свой контроллер,вы должны быть в состоянии сделать что-то вроде
@my_model = MyModel.new(params[:model])
@my_model.step = :register
if @my_model.save...
И, в вашей модели, что-то вроде
validates_presence_of :first_name, :last_name, :if => :registration_step?
def registration_step?
step == :register
end