当我尝试创建自定义设备控制器时:
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
# add custom create logic here
end
def update
super
end
end
我收到以下错误:
未知行动
一个AbstractController :: ActionNotFound
这不是路线的问题。我试图从ApplicationController继承RegistrationsController,它工作正常。一旦我尝试从Devise :: RegistrationsController继承它就会显示错误。这不是一个动作问题,因为我试图创建一个不同的动作,我得到同样的错误。
# app/config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
root :to => "registrations#new"
使用Rails 3.0.4
答案 0 :(得分:3)
在你的路线中,如果要覆盖设计默认动作,则必须使用devise_scope。
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 :(得分:1)
我在项目中成功使用了以下代码:
app/controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
end
routes.rb
devise_for :users, :controllers => { :registrations => "users/registrations" }