2015-03-20 6 views
1

Я начал с веб-приложения для регистрации пользователей и т. Д., Используя драгоценный камень. Я новичок в Ruby/Rails env. Так что это часть моего обучения.Ошибка маршрутизации - неинициализированная константа Пользователи :: РегистраторыController

Моего вопрос очень похож на старую проводку @devise overriding registrations controller - uninitialized constant Users::RegistrationsController

После того, как домашняя страница дисплеев, когда я нажимаю на кнопке Регистрации, я получаю эту ошибку. Я провел некоторое исследование по этой проблеме в Интернете безрезультатно.

В приложение/контроллеры/пользователей/registrations_controllers.rb У меня есть этот код:

class Users::RegistrationsController < Device::RegistrationsController 

    def create 
     super do |resource| 
     if params[:plan] 
      resource.plan_id = params[:plan] 
      if resource.plan_id == 2 
       resource.save_with_payment 
      else 
       resource.save 
      end 
     end 
     end 
    end 
    end 

В routes.rb У меня есть эта строка кода:

devise_for :users, :controllers => { :registrations =>   'users/registrations' } 

Пожалуйста, дайте мне знать, если вы нужна любая другая информация, помогающая разрешить эту ошибку.

+1

Попробуйте 'app/controllerlers/users/registrations.controllers.rb' это должно быть' registrations_controller.rb'. переименовать имя файла – Sontya

+0

Вместо использования ярлыка «Пользователи :: RegistrationsController», попробуйте обернуть его в модуль 'Users':' Module Users; class RegistrationsController' – janfoeh

+0

@Sontya на самом деле у меня это как registrations_controller.rb, а не как registrations.controller.rb и его все еще не работает. – joship

ответ

1

В routes.rb, попробуйте:

devise_for :users, 
    :skip => [:registrations, :sessions] 

as user do 
    # Registrations 
    get '/signup' => 'users/registrations#new', as: :new_user_registration 
    post '/signup' => 'users/registrations#create', as: :user_registration 

Он должен работать.

+0

СПАСИБО СМОТРЕТЬ! Я искал часы о том, как остановить Devise overriding контроллеров и не видел этого нигде. Это, наконец, решило мою проблему. – Aron

Смежные вопросы