Qual è la sostituzione di Rails 3 per ActiveRecord :: Errori?Qual è la sostituzione di Rails 3 per ActiveRecord :: Errori?
In Rails 2.3.8, questo è un oggetto:
>> ActiveRecord::Errors
=> ActiveRecord::Errors
In Rails 3.0.0rc, si ottiene un NameError:
>> ActiveRecord::Errors
NameError: uninitialized constant ActiveRecord::Errors
from (irb):2
Sto cercando di far funzionare il generatore wizardly con Rails 3.
$ rails g wizardly_scaffold home
Ma fallisce:
01.235./Library/Ruby/Gems/1.8/gems/wizardly_gt-0.1.8.9/lib/validation_group.rb:150:
uninitialized constant ActiveRecord::Errors (NameError)
La linea si riferisce a questo è:
ActiveRecord::Errors.send :include, ValidationGroup::ActiveRecord::Errors
In precedenza nel file, vediamo:
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 indica la sostituzione corretta sotto. Tuttavia, questo non è sufficiente per lavorare magicamente (o persino per far funzionare gli scaffold). Ciò richiederà un lavoro significativo. –
Alla fine hai lavorato magicamente con Rails 3? – peku
Non l'ho fatto. Ho provato a utilizzare grouped_validation (che funziona con rails 3) invece di validationgroup, ma non l'ho mai installato e funzionante. Sono tornato alle guide 2.3.8 per procedere con il progetto. Se vuoi, posso recuperare la mia versione hackerata di maghi per poter continuare a lavorare. –