Я следовал приведенному ниже руководству и создал одно целое приложение.
http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/
http://www.tonyamoyal.com/2010/09/29/rails-authentication-with-devise-and-cancan-part-2-restful-resources-for-administrators/comment-page-2/#comment-879
Все хорошо, пока я не столкнулся с проблемой ближе к концу.
Проблема в том, что когда пользователь super_admin пытается создать нового пользователя. Я получил ошибку:
Started POST "/users" for 127.0.0.1 at 2012-03-09 23:37:51 -0500
Processing by RegistrationsController#create as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"c8v6fmCFSlJV2v9qClxD46c1wcBU7n78Mk9xWsJm/Ls=", "user"=>{"email"=>"test@example.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "customer_attributes"=>{"first_name"=>"test", "last_name"=>"doe"}, "role_ids"=>["", "3"]}, "commit"=>"Sign up"}
Completed in 9ms
NameError (неинициализированная константа регистрации):
Что я могу понять, так это конфликт маршрутов. Учебное пособие № 1, используйте разработанный контроллер пользовательских регистраций для регистрации нового пользователя. Тут # 2, добавлен еще один способ создания нового пользователя с помощью super_admin. Ниже приведен список маршрутов.
cancel_user_registration GET /users/cancel(.:format) {:action=>"cancel", :controller=>"registrations"}
user_registration POST /users(.:format) {:action=>"create", :controller=>"registrations"}
new_user_registration GET /users/register(.:format) {:action=>"new", :controller=>"registrations"}
edit_user_registration GET /users/edit(.:format) {:action=>"edit", :controller=>"registrations"}
PUT /users(.:format) {:action=>"update", :controller=>"registrations"}
DELETE /users(.:format) {:action=>"destroy", :controller=>"registrations"}
user_confirmation POST /users/confirmation(.:format) {:action=>"create", :controller=>"devise/confirmations"}
new_user_confirmation GET /users/confirmation/new(.:format) {:action=>"new", :controller=>"devise/confirmations"}
GET /users/confirmation(.:format) {:action=>"show", :controller=>"devise/confirmations"}
users GET /users(.:format) {:action=>"index", :controller=>"users"}
POST /users(.:format) {:action=>"create", :controller=>"users"}
new_user GET /users/new(.:format) {:action=>"new", :controller=>"users"}
edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"}
user GET /users/:id(.:format) {:action=>"show", :controller=>"users"}
PUT /users/:id(.:format) {:action=>"update", :controller=>"users"}
DELETE /users/:id(.:format) {:action=>"destroy", :controller=>"users"}
примечание, совпадающее с глаголом http: путь Post / users и user_registrations был найден первым.
POST /users(.:format) {:action=>"create", :controller=>"users"}
user_registration POST /users(.:format) {:action=>"create", :controller=>"registrations"}
Но не знаю, как лучше всего избежать этого конфликта. Можете ли вы пролить свет на это? Я не могу понять из вашего урока.
Заранее спасибо,
George