我们正在从 rails 2.3 升级到 rails 3,并且我们对以下模型进行了一些验证:
validates_length_of :corporate_type, :in => 1..255, :allow_blank => false, :on => :update, :if => Proc.new { |rra| rra.show_corporate_type? }
在 Rails 2.3 中,这只在更新时调用,但在 Rails 3 中,它似乎在创建时调用,这会破坏下游的一些东西......有人可以解释为什么在创建时调用它吗?
这是堆栈:
app/models/rra_agreement.rb:11:in `block in <class:RRAAgreement>'
app/models/foo_application_delegate.rb:29:in `create_application'
第 28 和 29 行是:
rra = RRAAgreement.new()
rra.save
第 11 行是上面的验证行
谢谢乔尔