Разработка ошибки контроллера пользовательских регистраций - PullRequest
0 голосов
/ 23 марта 2011

Когда я пытаюсь создать собственный контроллер устройства:

class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    # add custom create logic here
  end

  def update
    super
  end
end  

Я получаю следующую ошибку:

Неизвестное действие

AbstractController :: ActionNotFound

Это не проблема с маршрутами. Я пытался унаследовать RegistrationsController от ApplicationController, и он работает нормально. Как только я пытаюсь унаследовать от Devise :: RegistrationsController, он показывает ошибку. Это не может быть проблемой действия, потому что я пытался создать другое действие, и я получаю ту же ошибку.

# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
root :to => "registrations#new"

Использование Rails 3.0.4

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

В ваших маршрутах вы должны использовать devise_scope, если вы переопределяете действия устройства devise по умолчанию.

devise_for :users, :controllers => {:registrations => "registrations"}
devise_scope :user do
    root :to => "registrations#new"
end 

По аналогичной проблеме смотрите http://groups.google.com/group/plataformatec-devise/browse_thread/thread/a5beaaf4b1ad343a

Также вот документы об изменении входа по умолчанию в маршрутах, я знаю, что вы делаете регистрацию, но это может быть похоже: https://github.com/plataformatec/devise/wiki/How-To:-Change-the-default-sign_in-and-sign_out-routes

1 голос
/ 23 марта 2011

Я успешно использовал следующий код в моем проекте:

app/controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
end

routes.rb
devise_for :users, :controllers => { :registrations => "users/registrations" }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...