2010-06-23 185 views
5

我是一個新的Ruby on Rails用戶,並有一個問題。我知道我想讓我的用戶數據庫看起來像什麼,但想知道我是否應該爲其添加額外的值。基本上我需要一個變量來向所有用戶發出信號,告訴他們進行某種操作是安全的。這個變量在所有用戶中都是持久的,並且應該對所有用戶都可見,但是我希望服務器也能夠更改這個變量。當使用其他語言進行編程時,我會使用全局變量,所以我想檢查這裏是否也是這種情況。如果是這樣,這是否是最好的方法:Site-Wide Global Variables in Ruby on Rails。另外,我將如何更新全局變量。謝謝你的幫助!Ruby on Rails - 全局變量?

回答

7

的全局變量不適合您的需要。它並不遍佈所有的Ruby進程。如果您的Web服務器派生5個ruby進程來同時處理5個請求,則第一個進程中定義的變量對其他進程將不可見。

還有其他解決方案可用。您可以使用數據庫並將標誌/信息存儲在數據庫中。否則,您可以使用文件並將該值存儲在文件中。 最好的解決方案是內存共享數據源,例如memcached或Redis。

+1

如果這是存儲的唯一變量,則memcache將會過度殺傷 – 2010-06-23 20:36:59