Что является направляющими 3 замены для ActiveRecord:: Ошибки?
В направляющих 2.3.8, это - объект:
>> ActiveRecord::Errors
=> ActiveRecord::Errors
В направляющих 3.0.0rc, Вы получаете NameError:
>> ActiveRecord::Errors
NameError: uninitialized constant ActiveRecord::Errors
from (irb):2
Я пытаюсь заставить wizardly генератор работать с направляющими 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
Это будет ActiveModel :: Errors
. Такие вещи, как проверки и обработка ошибок, были перенесены в Active Model, чтобы предоставить общий API для всех ORM Railties, таких как Active Record, Data Mapper, Mongoid и т. Д., Для подключения к Rails.
Похоже, что волшебный плагин должен сначала проверить ActiveModel и, если он существует, включить туда обработку ошибок, а не ActiveRecord :: Errors
. Мелочь.
Попробуйте этот гем
http://rubygems.org/gems/wizardly_gt
Я только начал играть с Wizardly, но, по крайней мере, вышеперечисленное кажется совместимым с Rails 3.