Ruby on Rails - 全局变量?

时间:2010-06-23 18:30:24

标签: ruby-on-rails ruby global-variables

我是一个新的Ruby on Rails用户并且有一个问题。我知道我希望我的用户数据库看起来像什么,但想知道我是否应该为它添加一个额外的值。基本上我需要一个变量来向所有用户发出信号,表示可以安全地继续执行某个操作。此变量将在所有用户中保持不变,并且对所有用户都应该可见,但我希望服务器也能够更改此变量。当用其他语言编程时,我会使用全局变量,所以我想检查这是否也是这种情况。如果是这样,那么这是解决问题的最佳方法:Site-Wide Global Variables in Ruby on Rails。另外,我如何更新全局变量。谢谢你的帮助!

1 个答案:

答案 0 :(得分:7)

全局变量不适合您的需要。它并没有遍布所有Ruby进程。如果您的Web服务器同时生成5个ruby进程来处理5个请求,则第一个进程中定义的变量将对其他进程不可见。

还有其他解决方案可供选择。您可以使用数据库并将标志/信息存储在数据库中。否则,您可以使用文件并将值存储在文件中。 最好的解决方案是内存中的共享数据源,例如memcached或Redis。