调用new后,ActiveModel会破坏

时间:2011-05-24 23:29:17

标签: ruby-on-rails ruby activerecord activemodel

我正在使用一个遵循resource_controller原则解释here的控制器。

正如您所看到的,我无法完全控制(新的,创建等等)所有这些预加载数据,这意味着如果我想创建一个新实体,请说@user以下代码已被称为@user = User.new

我可以包含一些验证的唯一方法是通过回调,但是一旦回调决定取消新方法,我总是以Hash冻结错误结束。 换句话说,我不能说 @user = User.new @user.destroy

我能想到的唯一的黑客是 @user = User.new @user.save @user.destroy

有没有人知道更好的方法,这不涉及将内容保存到数据库中? 顺便说一下,活动记录和活动模型有什么区别?

1 个答案:

答案 0 :(得分:1)

如何在销毁之前检查它是否已被保存?

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