Quel est le remplacement de Rails 3 pour ActiveRecord :: Errors?Quel est le remplacement de Rails 3 pour ActiveRecord :: Errors?
Dans Rails 2.3.8, ceci est un objet:
>> ActiveRecord::Errors
=> ActiveRecord::Errors
Dans Rails 3.0.0rc, vous obtenez un NameError:
>> ActiveRecord::Errors
NameError: uninitialized constant ActiveRecord::Errors
from (irb):2
Je suis en train de faire fonctionner le générateur wizardly avec Rails 3.
$ rails g wizardly_scaffold home
Mais il échoue:
/Library/Ruby/Gems/1.8/gems/wizardly_gt-0.1.8.9/lib/validation_group.rb:150:
uninitialized constant ActiveRecord::Errors (NameError)
La ligne se réfère à ceci:
ActiveRecord::Errors.send :include, ValidationGroup::ActiveRecord::Errors
Plus tôt dans le fichier, nous voyons:
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 indique le bon remplacement ci-dessous. Cependant, cela ne suffit pas pour travailler avec sagesse (ou même pour faire fonctionner les échafaudages). Cela exigera un travail important. –
Avez-vous fini par travailler avec Rails 3? – peku
Je ne l'ai pas fait. J'ai essayé d'utiliser grouped_validation (qui fonctionne avec rails 3) au lieu de validationgroup, mais je ne l'ai jamais fait fonctionner. Je suis revenu aux rails 2.3.8 pour poursuivre le projet. Si vous le souhaitez, je peux déterrer ma version piratée de magicien pour que vous puissiez continuer à travailler dessus. –