2011-12-13 30 views
22

save(false)save(:validate => false)之间的区别是什么?从我所知道的,功能是一样的。使用:validate的版本在api中导致我相信save(false)是已弃用的版本?接下来是这样的:https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user。该指南中有save(false),但使用它时出现错误。我将它切换到:validate版本,并且工作正常。保存(false)和保存(:validate => false)之间的区别

回答

30

在Rails版本比3之前,savewas a methodActiveRecord::Base,你可以为了通过false它绕过验证。

在Rails 3,savewas movedActiveRecord::Persistance,从那时起,你应该为了通过:validate => falsesave绕过验证。

+0

以为是类似的东西,谢谢! – Steve

+0

请注意,一旦你使用这个来保持违反约束的状态,所有后续的保存也需要验证:false。 – DylanReile

相关问题