Уничтожение активной модели после вызова new

#ruby-on-rails #ruby #activerecord #activemodel

#ruby-on-rails #ruby #activerecord #activemodel

Вопрос:

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

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

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

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

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

Ответ №1:

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

 @user.destroy unless (@user.new_record?)