ruby-on-rails - 仅在创建时验证方法调用,而不是在更新时调用

标签 ruby-on-rails ruby jruby ruby-on-rails-2 jrubyonrails

我的模型中有验证方法

def validate
  super    
  if some condition
    errors.add('', 'some text')
  end
end

此方法调用创建和更新。我不想调用更新。我该怎么做?

我正在使用 rails2.3.11 和 jruby。

更新: 我可以使用这个 validate :custom_validation, :on => :create,但是他们如何调用 Create 和 Update??

我也检查了 validate_on_create,但我还是不知道这个 validate 是什么时候调用的?

最佳答案

使用

validate :custom_validation, :on => :create

并将您的方法名称从 validate 更改为 custom_validation

def custom_validation
  super    
  if some condition
    errors.add('', 'some text')
  end
end

上面的方法只会在创建时调用,不会在更新时调用

关于ruby-on-rails - 仅在创建时验证方法调用,而不是在更新时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574933/

相关文章:

ruby-on-rails - 找出 Rails 应用程序在主机上运行的 Web 服务器

ruby-on-rails - 在 AWS Elastic Beanstalk 上部署 Rails 应用程序

java - 如何使用 jruby 对 java 应用程序使用 rspec?

heroku - 在 Heroku 上使用 jRuby cext 构建 gem

android - 带有 SL4A 的 JRuby 的 Dalvik 错误

mysql - 在 Ruby on Rails 中,如何在先前被销毁时创建 ID 为 3 的记录?

ruby-on-rails - 是否可以在本地文件夹中运行 Ruby 和 Rails,而无需先在 Mac OS X 上安装它们?

ruby-on-rails - 内存关联引用损坏 : Reference parent object before save returns nil

ruby - 如何计算 Ruby 中数组中数组的数量?

ruby - 为什么拒绝不是拒绝?