¿Cuál es el reemplazo de Rails 3 para ActiveRecord :: Errors?¿Cuál es el reemplazo de Rails 3 para ActiveRecord :: Errors?
En Rails 2.3.8, esto es un objeto:
>> ActiveRecord::Errors
=> ActiveRecord::Errors
En Rails 3.0.0rc, se obtiene una NameError:
>> ActiveRecord::Errors
NameError: uninitialized constant ActiveRecord::Errors
from (irb):2
que estoy tratando de hacer funcionar el generador de wizardly con rieles 3.
$ rails g wizardly_scaffold home
Pero no:
/Library/Ruby/Gems/1.8/gems/wizardly_gt-0.1.8.9/lib/validation_group.rb:150:
uninitialized constant ActiveRecord::Errors (NameError)
La línea se refiere a lo siguiente:
ActiveRecord::Errors.send :include, ValidationGroup::ActiveRecord::Errors
anteriormente en el archivo, vemos:
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
Ryan señala el reemplazo correcto a continuación. Sin embargo, esto no es suficiente para lograr un funcionamiento mágico (o incluso para que los andamios funcionen). Eso requerirá un trabajo significativo. –
¿Eventualmente trabajaste de forma mágica con Rails 3? – peku
No lo hice. Intenté usar grouped_validation (que funciona con rails 3) en lugar de validationgroup, pero nunca lo puse en marcha. Cambié de nuevo a los carriles 2.3.8 para continuar con el proyecto. Si quieres, puedo desenterrar mi versión pirateada de wizardly para que puedas seguir trabajando. –