我想控制每个用户的邀请数量。
我知道我可以在config/initializers/devise.rb文件中对devise_invitable进行一些配置,并限制我想邀请多少用户,例如:
# initializer/devise.rb
# Number of invitations users can send.
...
config.invitation_limit = 5但是我想要的是,取决于用户的类型,我可以或多或少地邀请一些人。
如果我有一个角色类型管理员,那么它将类似于config.invitation_limit = 10
如果我有一个共同的用户角色,那么我只能分别邀请3个人等等。
发布于 2022-02-18 15:15:00
文档指出:
您可以为某些用户更改invitation_limit列,这样他们就可以发送更多或更少的邀请。
您可以将invitation_limit设置为create。
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
endhttps://stackoverflow.com/questions/71020933
复制相似问题