2010-06-23 29 views
5

Yeni Ruby on Rails kullanıcısıyım ve bir sorum var. Kullanıcılarımın DB'nin nasıl görünmesini istediğime dair bir fikrim var ama buna ek bir değer eklemem gerekip gerekmediğini merak ettim. Temel olarak, tüm kullanıcılara belirli bir işlemle devam etmenin güvenli olduğunu bildiren bir değişkene ihtiyacım var. Bu değişken tüm kullanıcılar arasında kalıcı olacaktır ve tüm kullanıcılar tarafından görülebilir olmalıdır, ancak sunucunun bu değişkeni de değiştirmesini istiyorum. Diğer dillerde programlama yaparken, global değişkenler kullanacağım, bu yüzden de durumun burada olup olmadığını kontrol etmek istedim. Eğer öyleyse, bu gidiş için en iyi yaklaşım olurdu: Site-Wide Global Variables in Ruby on Rails. Ayrıca, global değişkenleri nasıl güncellerim? Herhangi bir yardım için teşekkürler!Ruby on Rails - Küresel Değişken?

cevap

7

Genel bir değişken gereksiniminize uymuyor. Tüm Ruby işlemlerine yayılmaz. Web sunucunuz aynı anda 5 isteği işlemek için 5 ruby ​​süreçleri ortaya çıkarsa, ilk işlemde tanımlanan değişken diğerlerine görünmez.

Diğer çözümler de var. Bir veritabanını kullanabilir ve veritabanındaki bayrak/bilgileri depolayabilirsiniz. Aksi halde, bir dosyayı kullanabilir ve dosyadaki değeri saklayabilirsiniz. En iyi çözüm, memcached veya Redis gibi bir bellek içi paylaşımlı veri kaynağı olabilir. Eğer kayıtlı tek değişken ise

+1

memcache overkill olurdu –