首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据Rails中的用户设置invitation_limit

如何根据Rails中的用户设置invitation_limit
EN

Stack Overflow用户
提问于 2022-02-07 15:17:38
回答 1查看 95关注 0票数 3

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

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

代码语言:javascript
复制
# initializer/devise.rb
# Number of invitations users can send.
... 
config.invitation_limit = 5

但是我想要的是,取决于用户的类型,我可以或多或少地邀请一些人。

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

如果我有一个共同的用户角色,那么我只能分别邀请3个人等等。

EN

回答 1

Stack Overflow用户

发布于 2022-02-18 15:15:00

文档指出:

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

您可以将invitation_limit设置为create。

代码语言:javascript
复制
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方法:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71020933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档