Как переопределить контроллер Devise 1.1.rc2? - PullRequest
0 голосов
/ 14 июля 2010

Я хочу добавить опцию регистрации в формате JSON и некоторые другие специфические вещи в мое приложение.Я попытался добавить свой собственный RegistrationsController контроллер и затем настроить мои маршруты так:

devise_for :users, :path_names => { :sign_in => 'signin', :sign_out => 'signout', :sign_up => 'signup' }
match 'signin', :to => 'devise/sessions#new', :as => "new_user_session"
match 'signout', :to  => 'devise/sessions#destroy', :as => "destroy_user_session"
match 'signup(.:format)', :to => 'registrations#new', :as => "new_user_registration"

My RegistrationsController в app / controllers / registrations_controller.rb выглядит так:

class RegistrationsController < Devise::RegistrationsController
  prepend_view_path "app/views/devise"
  def create
    # My custom implementation
  end
end

Всегда выдает следующую ошибку независимо от формата

AbstractController::ActionNotFound (AbstractController::ActionNotFound):
/usr/local/Cellar/Gems/1.8/gems/devise-1.1.rc2/lib/devise/controllers/internal_helpers.rb:57:in `is_devise_resource?'
...

Я даже пытался добавить контроллер регистрации из git в app / controllers / devise / registrations_controller.rb и изменить маршруты так, чтобы указать, чтоодин вместо этого, но это тоже не сработало.У кого-нибудь есть идея?

1 Ответ

1 голос
/ 14 июля 2010

Разобрался!Я пытался переопределить create в контроллере регистраций, но не перешел на него ... Глупая ошибка.

devise_for :users, :path_names => { :sign_in => 'signin', :sign_out => 'signout', :sign_up => 'signup' }, :controllers => { :registrations => "registrations" }
match 'signin', :to => 'devise/sessions#new', :as => "new_user_session"
match 'signout', :to  => 'devise/sessions#destroy', :as => "destroy_user_session"
get 'signup', :to => 'registrations#new', :as => "new_user_registration"
post 'signup(.:format)', :to => 'registrations#create', :as => "create_user_registration"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...