2010-06-23 35 views
5

Soy un nuevo usuario de Ruby on Rails y tenía una pregunta. Tengo una idea de cómo quiero que se vea mi DB de usuarios, pero me preguntaba si debería agregarle un valor adicional o no. Básicamente, necesito una variable para indicar a todos los usuarios que es seguro proceder con una determinada acción. Esta variable sería persistente en todos los usuarios y debería ser visible para todos los usuarios, pero también quiero que el servidor pueda cambiar esta variable. Cuando programe en otros idiomas, usaría variables globales, así que quería verificar si ese es también el caso aquí. De ser así, ¿sería este el mejor método para hacerlo? Site-Wide Global Variables in Ruby on Rails. Además, ¿cómo actualizaría las variables globales? ¡Gracias por cualquier ayuda!Ruby on Rails - ¿Variables globales?

Respuesta

7

Una variable global no se ajusta a sus necesidades. No se extiende a todos los procesos de Ruby. Si su servidor web genera 5 procesos ruby ​​para gestionar 5 solicitudes al mismo tiempo, la variable definida en el primer proceso no será visible para los demás.

Existen otras soluciones disponibles. Puede usar una base de datos y almacenar la bandera/información en la base de datos. De lo contrario, puede usar un archivo y almacenar el valor en el archivo. La mejor solución sería una fuente de datos compartidos en la memoria, como memcached o Redis.

+1

Memcache sería excesivo si esta es la única variable almacenada –