2017-02-14 137 views
0

我在rails应用程序基础上构建了一个基于dookeeper和devise的ruby,现在我要更改默认情况下在Devise :: RegistrationsController中创建的默认RegistrationController红宝石到我在一个文件夹api/users/registrationController中创建的自定义。 我试过几种方法之一是这样的:route.rb没有指向我的自定义RegistrationController

devise_for :users, 
     only: :registrations, 
     controllers: { 
     registrations: 'api/users/RegistrationsController' 
     } 

,但我得到的错误,说这样的:

'api/RegistrationsController' is not a supported controller name. This can lead to potential routing problems. See http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use 

,我宣布这个RegistrationController是这样的方式:

class RegistrationsController < Devise::RegistrationsController 
    respond_to :json 
end 

当然,我在这个文件文件中创建了一些方法,但是当我发送posthost请求像localhost:3000/users和一个json文件时,它将我引用​​到此类类Devise :: RegistrationsCont滚轮< DeviseController并检查整个过程。

+0

'API /用户/ registrations' – Iceman

+0

@Iceman我添加此像为RichardAE在说下面的答案,但它不再工作,我也更改路径localhost:3000/api /用户,并试图得到结果,并从邮递员得到这个错误 – AndroidDev

+0

在Api ::用户:: RegistrationsController的LoadError#创建 无法autoload constant Api :: Users :: RegistrationsController,预计/ home/****/rails hell/****/app/controllers/api/users/registrations_controller.rb来定义它 – AndroidDev

回答

0

你不应该在字符串中的单词“控制器”,你需要downcase太:

'api/users/registrations' 
+0

仍然会得到这个{“errors”: {“鄂麦l“:[”不能为空“]}} – AndroidDev