2011-09-07 22 views
5

Çerezlerde saklandıklarını sanıyordum - ama hayır, kurabiye teftişi bana hiç bir şey vermiyor. Oturumlar bunları da saklamıyor. Peki onları nerede bulabilirim?Hızlı mesajlar nerede saklanıyor?

Doğrudan bunları ayarlamak için buna ihtiyacım var (flash karma aracılığıyla değil).

+1

Flaş varyetini kullanmadan bunları ayarlamanız gerekir. Bu mantıklı mı? Sadece neyi başarmak istediğini sormak istiyorum. – pduersteler

+0

Çerezlerde saklanmışlarsa, onları doğrudan kurardım: "çerezler [: flash] [: notice] =" Merhaba Dünya! ". Ama başka bir yerde saklanıyorlar. Yani soru şu: nerede saklanıyorlar :) – fl00r

+0

Ray kılavuzlarından: Flaş, her bir istekle birlikte temizlenen 'oturumun özel bir parçasıdır'. ve ayrıca ve Tüm oturum depoları, her oturum için benzersiz bir kimlik depolamak için bir tanımlama bilgisi kullanır (bir çerez kullanmanız gerekir; Rails, URL'de oturum kimliğini geçirmenize izin vermez, çünkü bu daha az güvenlidir). Sadece oturum verilerini saklamak için cookieStore kullanıyorsak, flaş çerezlerde saklanır. Genellikle sadece cookieStore kullanıyoruz, bu yüzden flash mesajının [: session] çerezinde bir yerlerde olması gerektiğini düşünüyorum. Ben de raylarda yeni çıkıyorum. Eğer Yanlışsam beni düzelt. – rtcoms

cevap

7

in your session store depolanır. Varsayılan 2.0'dan beri varsayılan değerden başka bir şey kullanıp kullanmadığınızı kontrol etmek için varsayılan 2.0 sürümünden beri varsayılan değer çerez deposudur, ancak config/initializers/session_store.rb numaralı telefondan kontrol edin.

2

APIdock : ActionController/Flash'a göre, bir oturumda depolanır.

Oturumlar devre dışı bırakıldığında yalnızca flash.now çalışacağını unutmayın.

flash.now kullanıldığında, değerleriniz bir sonraki istekte mevcut değildir.

+0

http://apidock.com/rails/ActionDispatch/Request/flash adresine bağlantı kurmak istediğinizi iddia ediyorum, 'ActionController :: Flash' sadece raylarda 1.0 var. –

+0

whoops, – pduersteler

+0

cevabınızı düzenleyebilirsiniz ;-); –

0

Daha detaylı bir yanıt arıyordum ve araştırmayla bulmayı bitirdim. Projeniz oturumu Postgres veritabanında saklıyorsa, aşağıdaki koşullar geçerlidir.

NOT: Uygulamanızın birden çok DB'ye bağlantıları olabilir. Rails'in bu bağlantılardan hangisini kullanacağını nasıl belirlediğini hala anlamadım. Projem session_store.rb boş.

Flaş mesajlarını sessions tablosunda bulabilirsiniz. Base64 kodlu bir dize içeren data adında bir sütun var.

Dizginin kodunu çözerseniz, yalnızca flaş iletilerini (her tür Ruby nesnesini temsil edebilecek şekilde), aynı zamanda CSRF belirtecini ve diğer birkaç şeyi içeren ikili bir blob bulabilirsiniz. .

Tüm blob aslında bir karma karma tablosu. Ruby'de Marshal.load ile unmarshalled olabilir ve herhangi bir değişiklik yapıldıktan sonra, Marshal.dump ile remarshalled edilebilir.