2012-05-12 37 views
5

Trong ứng dụng đường ray của tôi, tôi đang sử dụng thiết lập để đăng ký người dùng. Bây giờ ngoài đăng ký người dùng, quản trị viên cũng nên tạo, chỉnh sửa và xóa người dùng trong chương trình phụ trợ. Tôi gặp sự cố khi tạo người dùng mới thông qua chương trình phụ trợ quản trị viên đó.Cách tạo người dùng theo cách thủ công với Devise

Khi tôi gọi hành động UsersController # mới trong trình duyệt của mình, nó mở ra biểu mẫu nhập người dùng do tôi tạo. Khi tôi nhấp vào nút gửi, Devise :: RegistrationsController # create được gọi nhưng nó sẽ gọi hành động tạo # UsersController của tôi.

Làm cách nào để có thể gọi UsersController # tạo khi sử dụng tạo người dùng trong phần phụ trợ quản trị và gọi Devise :: RegistrationsController # khi người dùng sử dụng đăng ký?

Trả lời

5

1) thêm tiền tố con đường để đưa ra: devise_for :users, :path_prefix => 'd'

2) chạy rake routes:

user_registration POST /d/users(.:format) devise/registrations#create 
... 
users POST /users(.:format) users#create 

Vì vậy, con đường đầu tiên cho Devise::RegistrationsController, thứ hai cho UsersController của bạn.

Và bạn chỉ có thể sử dụng trong admin/new_user.html.erb: form_for User.new

0

Trên mặt sau của câu trả lời của Mikhail, bạn cũng có thể nói đưa ra sử dụng bất kỳ tên đường dẫn khác thay vì 'của người dùng. Ví dụ:

devise_for :users, path: 'auth' 

sẽ tạo ra các tuyến đường như/auth/sign_up,/auth/sign_in, v.v. Và tuyến đường người dùng tùy chỉnh của bạn sẽ an toàn.

(Danh sách đầy đủ các tùy chọn devise_for có thể được tìm thấy here)

Các vấn đề liên quan