Devise Invitable,如何在Rails中根据用户设置invitation_limit



我想控制每个用户的邀请数量

我知道我可以在config/initializers/device.rb文件中对devise_invitable进行一些配置,并限制我想邀请的用户数量,例如:

# initializer/devise.rb
# Number of invitations users can send.
... 
config.invitation_limit = 5

但我想要的是,根据用户的类型,我可以邀请或多或少的人。

如果我有一个角色类型的管理员,那么它将类似于config.invitation_limit=10

如果我有一个普通用户角色,那么我只能邀请3个人因此分别为

文档说明:

您可以更改某些用户的invitation_limit列,以便他们可以发送或多或少的邀请。。。

您可以在创建时设置invitation_limit。

class User < ApplicationModel
before_create :set_invitation_limit

def initial_invitation_limit
if is_admin?
10
else
3
end
end
def set_invitation_limit
self.invitation_limit = initial_invitation_limit
end
end

如果允许在创建后更改角色,则可以使用before_save

或者您可以覆盖invitation_limit方法:

class User < ApplicationModel
def initial_invitation_limit
if is_admin?
10
else
3
end
end
def invitation_limit
self[:invitation_limit] || initial_invitation_limit
end
end

最新更新