我正在使用devise_invitable
gem在我的應用程序中啓用邀請以及設計爲rails 3應用程序。我有一個User
& Profile
模型。在User
中,有一個role
列給出了用戶的類型。現在devise_invitable:只允許管理員邀請用戶
,我想限制創造新的邀請功能只通過此作用域作用域航線管理員devise/invitations#new
其中user.role=='admin'
&路線向大家開放休息。像這樣的東西
MyApp::Application.routes.draw do
devise_for :users, skip: [:registrations, :invitations]
as :user do
get 'users/edit' => 'devise/registrations#edit', as: 'edit_user_registration'
put 'users' => 'devise/registrations#update', as: 'user_registration'
# manually define alll devise_invitable routes, except devise/invitations#new
# accept_user_invitation GET /users/invitation/accept(.:format) devise/invitations#edit
# user_invitation POST /users/invitation(.:format) devise/invitations#create
# also the #accept route goes here
end
resource :profile, except: :destroy
authenticated :user, lambda {|u| u.role == "admin"} do
resources :user, controller: "user"
#only allow admin to invite other users
# new_user_invitation GET /users/invitation/new(.:format) devise/invitations#new
end
root to: 'profiles#show'
end
可能嗎?另外,做同樣事情的更好方法是什麼?
我一直在尋找直接從路線做到這一點,但我想,我將不得不以這種方式工作。感謝您的回答 – CuriousMind