Użyłem przyjaznego identyfikatora, aby zezwolić użytkownikowi na dostęp z jego nazwą logowania, ale gdy próbuję zarejestrować się przy użyciu nazwy logowania, która została zarezerwowana przez przyjazny identyfikator, wystąpił błąd. Wygląda na to, że program devise nie może poprawnie wygenerować komunikatu o błędzie. Błąd działa dobrze, gdy używam authlogic.Przyjazny identyfikator i błąd przy korzystaniu z zarezerwowanego słowa
Friendly_id Config:
:reserved_words => ["index", "new", "users", "admin", "login", "logout", "books",
"administrator", "signup"],
Błąd:
FriendlyId::ReservedError in Devise::RegistrationsController#create
FriendlyId::ReservedError
Używam:
gem 'devise', '1.3.4'
gem 'friendly_id', '3.2.1.1'
Można to skrócić do jednej linijki - 'errors.add: name, * errors.delete (: friendly_id) jeśli błędy [: friendly_id] .present?' As documented [here] (http://rubydoc.info/github/norman/friendly_id/master/FriendlyId/Reserved) –
Przeglądanie tych wartości spowoduje dodanie ich do tablicy błędów. Przed sprawdzeniem czy są obecne, dodałem 'if! @errors.empty? && @errors [: friendly_id] .present? ' – heavysixer