Me gustaría controlar el número de invitaciones por usuario
Sé que puedo hacer algunas configuraciones para devise_invitable en mi archivo config/initializers/devise.rb y limitar la cantidad de usuarios que quiero invitar, por ejemplo:
# initializer/devise.rb # Number of invitations users can send. ... config.invitation_limit = 5Pero lo que quiero es que dependiendo del tipo de usuario pueda invitar a más o menos personas.
Si tengo un administrador de tipo de función, sería algo así como config.invitation_limit = 10
Si tengo un rol de usuario común, solo puedo invitar a 3 personas, respectivamente.
La documentación dice:
Puede cambiar la columna invitation_limit para algunos usuarios para que puedan enviar más o menos invitaciones...
Puede establecer el límite de invitación en crear.
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 Si permite cambios en el rol después de la creación, puede usar before_save .
O podría anular el método 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