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.
Flaş varyetini kullanmadan bunları ayarlamanız gerekir. Bu mantıklı mı? Sadece neyi başarmak istediğini sormak istiyorum. – pduersteler
Ç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
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