什么是ActiveRecord :: Errors的Rails 3替代品?什么是Rails 3替代ActiveRecord :: Errors?
在Rails 2.3.8,这是一个对象:
>> ActiveRecord::Errors
=> ActiveRecord::Errors
在Rails 3.0.0rc,你会得到一个NameError:
>> ActiveRecord::Errors
NameError: uninitialized constant ActiveRecord::Errors
from (irb):2
我试图让wizardly发电机工作使用Rails 3
$ rails g wizardly_scaffold home
但它失败:
/Library/Ruby/Gems/1.8/gems/wizardly_gt-0.1.8.9/lib/validation_group.rb:150:
uninitialized constant ActiveRecord::Errors (NameError)
它指的是这样的一行:
ActiveRecord::Errors.send :include, ValidationGroup::ActiveRecord::Errors
文件中的早些时候,我们看到:
module ValidationGroup
module ActiveRecord
...
module Errors # included in ActiveRecord::Errors
def add_with_validation_group(attribute, msg = I18n.translate('activerecord.errors.messages')[:invalid], *args, &block)
add_error = @base.respond_to?(:should_validate?) ? (@base.should_validate?(attribute.to_sym) || attribute == :base) : true
add_without_validation_group(attribute, msg, *args, &block) if add_error
end
...
end
瑞恩指出下面的正确替换。但是,这还不足以实现神奇的工作(甚至不能让脚手架工作)。这将需要大量的工作。 – 2010-08-10 06:05:55
你最终得到了神奇的Rails 3工作吗? – peku 2010-08-24 12:36:47
我没有。我尝试使用grouped_validation(它与rails 3一起使用)而不是验证组,但从未启动并运行。我转回到rails 2.3.8来继续这个项目。 如果你愿意,我可以挖掘我的黑客版本的巫术让你继续工作。 – 2010-08-24 18:15:37