Devise: переопределение действия создания в Контроллере регистраций для Recaptcha - PullRequest
5 голосов
/ 11 мая 2011

Я пытаюсь переопределить метод create из контроллера регистрации в Разработать , чтобы включить проверку Recaptcha (как видно здесь и здесь ):

class RegistrationsController < Devise::RegistrationsController

  def create
    if verify_recaptcha
      super
    else
      build_resource
      clean_up_passwords(resource)
      flash[:alert] = "Bad words."
      render_with_scope :new
    end
  end

end

Также соответственно изменил мой route.rb:

  map.devise_for :users, :controllers => {:registrations => "registrations"}, :path_names => {
    :sign_up => 'signup',
    :sign_in => 'login',
    :sign_out => 'logout'
  }

При попытке перейти на новую страницу регистрации (с новым путем: http://localhost:3000/users/signup) эта ошибка отображается:

LoadError in RegistrationsController#new

Expected /home/benoror/project/app/controllers/registrations_controller.rb to define RegistrationsController

ПОЛНАЯ ОШИБКА TRACE

Любая помощь приветствуется.

BTW , я использую Devise 1.0.11 иRails 2.3.10, спасибо!

1 Ответ

5 голосов
/ 11 мая 2011

Ваш контроллер находится в модуле Users? Если это так, вам понадобятся

class Users::RegistrationsController
и
{:registrations => "users/registrations"}

Редактировать: Согласно José Valim , пользовательские контроллеры не работают до Devise 1.1. Нет причин для разработки на

...