Rails 3.1 client_side_validations Ошибка Gem неинициализированная постоянная ошибка при ограничении уникальности

У меня есть модель под названием «Бизнес», для которой у меня есть проверка уникальности по электронной почте. Запрос ajax отправляется на URL-адрес

http://localhost.com/validators/uniqueness?case_sensitive=true&business%5Bemail%5D=mabid.mah%40gmail.com

Но это дает мне странную ошибку

uninitialized constant Busines

Пропущена буква s, куда она делась? вот трассировка стека

activesupport (3.2.3) lib/active_support/inflector/methods.rb:229:in `block in constantize'
activesupport (3.2.3) lib/active_support/inflector/methods.rb:228:in `each'
activesupport (3.2.3) lib/active_support/inflector/methods.rb:228:in `constantize'
activesupport (3.2.3) lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
client_side_validations (3.1.4) lib/client_side_validations/middleware.rb:59:in `is_unique?'
client_side_validations (3.1.4) lib/client_side_validations/middleware.rb:45:in `response'
client_side_validations (3.1.4) lib/client_side_validations/middleware.rb:16:in `call'

person Abid    schedule 06.06.2012    source источник


Ответы (1)


Понял, что это проблема с инфлектором рельсов classify

Метод classify не работает с именами в единственном числе, такими как «Бизнес».

http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html#method-i-classify

Чтобы обойти это, добавьте следующее в свой config/initializers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.singular(/ess$/i, 'ess')
end
person Abid    schedule 08.06.2012