我正在使用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