ActiveModel уничтожается после вызова нового

Я работаю с контроллером, который следует принципу resource_controller, описанному здесь.

Как видите, у меня нет полного контроля над (создать, создать и т. д.), все они предварительно загружают данные, что означает, что если я хочу создать новый объект, скажем, @user, следующий код уже был вызван @user = User.new .

Единственный способ, которым я могу включить некоторую проверку, — это обратные вызовы, но как только обратный вызов решает отменить новый метод, я всегда получаю ошибку «Хеш-заморожен». Другими словами, я не могу сказать @user = User.new @user.destroy

Единственный лайфхак, который я смог придумать, это @user = User.new @user.save @user.destroy

Кто-нибудь знает лучший способ, который не включает сохранение вещей в базу данных? И кстати, в чем разница между активной записью и активной моделью?


person mabounassif    schedule 24.05.2011    source источник


Ответы (1)


Как насчет того, чтобы проверить, было ли оно сохранено, прежде чем уничтожить его?

@user.destroy unless (@user.new_record?)
person tadman    schedule 25.05.2011