我有一個rails應用程序'A'
,它在另一個應用程序的iframe上運行'B'
。當應用程序'A'
加載到'B'
的iframe時,我正在設置會話中的一些值。當用戶執行應用程序'B'
的某些操作時,我想銷燬這些會話值。所以,我創建了一個簡單的API方法,它只是刪除會話值。每當要刪除會話值的API被調用時,API調用都會成功,但會話值似乎不存在於該方法中。Rails 4:從API調用中刪除會話值
我用了三種應該工作的方法。但它不起作用。該API::AController
方法是:
def delete_session_value
session.key?(:value) # Returns false here
reset_session # 1
session[:value] = nil # 2
session.delete(:value) # 3
end
會議由ApplicationController
設置簡單的任務session[:value] = 'something'
。會話值可在整個應用程序中訪問。 API控制器無法訪問會話值?有沒有其他方法可以解決這個問題而不影響流量?
因此'B'在'A'上調用API方法?你看到任何調試輸出提示有問題嗎?你可以在'delete_session_value'中添加一些'puts'語句來確保它實際上被調用嗎? – Hbcdev 2014-09-29 14:35:11
是的。它在A上調用API方法。這就是爲什麼我在方法的開頭提到了'session.key?(:value)#在這裏返回false'的原因。我用'binding.pry'來驗證它是否被實際調用。 – nebula 2014-09-29 14:38:36