ActiveModel уничтожить после вызова нового - PullRequest
0 голосов
/ 25 мая 2011

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

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

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

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

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

1 Ответ

1 голос
/ 25 мая 2011

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

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