我想重寫默認的設計註冊控制器的一些功能,以便只有某些用戶可以創建其他人的帳戶。因此,在控制器下的文件名爲registrations_controller.rb/Users文件夾,我有以下設計重寫註冊控制器 - 未初始化的常量用戶::註冊控制器
class Users::RegistrationsController < Devise::RegistrationsController
before_filter :check_permissions, :only => [:new, :create, :cancel]
skip_before_filter :require_no_authentication
def check_permissions
authorize! :create, resource
end
end
,在我的路線文件我有
devise_for:用戶:控制器=> {:註冊=>'用戶/註冊'}
當我嘗試去users/sign_up url我得到一個路由錯誤'未初始化的常量Users :: RegistrationsController'。
那麼,真正讓我感到失望的是,我在rails 3應用程序中使用了幾乎完全相同的功能,沒有出現問題。我看了一些與此類似的其他stackoveflow問題,但我仍然不明智。我現在正在創建的應用程序是一個軌道3.1應用程序,我使用的設計1.5.1
下面是有關其路由情況下,他們有用
new_user_session GET /users/sign_in(.:format) {:action=>"new", :controller=>"devise/sessions"}
user_session POST /users/sign_in(.:format) {:action=>"create", :controller=>"devise/sessions"}
destroy_user_session DELETE /users/sign_out(.:format) {:action=>"destroy", :controller=>"devise/sessions"}
user_password POST /users/password(.:format) {:action=>"create", :controller=>"devise/passwords"}
new_user_password GET /users/password/new(.:format) {:action=>"new", :controller=>"devise/passwords"}
edit_user_password GET /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"}
PUT /users/password(.:format) {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET /users/cancel(.:format) {:action=>"cancel", :controller=>"users/registrations"}
user_registration POST /users(.:format) {:action=>"create", :controller=>"users/registrations"}
new_user_registration GET /users/sign_up(.:format) {:action=>"new", :controller=>"users/registrations"}
edit_user_registration GET /users/edit(.:format) {:action=>"edit", :controller=>"users/registrations"}
PUT /users(.:format) {:action=>"update", :controller=>"users/registrations"}
DELETE /users(.:format) {:action=>"destroy", :controller=>"users/registrations"}
謝謝你堅持那個例子。這真的很奇怪,我似乎與你的設置完全一樣,但我仍然得到了未初始化的常量錯誤。我會繼續尋找錯別字 – Conor
我有同樣的問題,原來也是我的錯字。 – Jondlm