2013-10-03 48 views
4

我使用Ruby on Rails的3.0.9,一切工作發展ENV罰款。當我切換到Production env時,或者我將其上傳到我們的服務器時,登錄後我會回到相同的登錄頁面。當我檢查日誌,我可以看到以下內容:導軌 - 401未經授權,當我訪問行動,僅生產

Started POST "https://stackoverflow.com/users/login" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013 
    Processing by UserSessionsController#create as HTML 
    Parameters: {"user"=>{"password"=>"[FILTERED]", "login"=>"demo_admin"}, "utf8"=>"✓", "authenticity_token"=>"+7AEoVXZ9XiagEymVUnOhFHnck4rgDu883E/ySMlCxQ="} 
Redirected to http://localhost:3000/admin 
Completed 302 Found in 111ms 


Started GET "/admin" for 127.0.0.1 at Thu Oct 03 16:48:13 -0300 2013 
    Processing by Admin::DashboardController#index as HTML 
Completed 401 Unauthorized in 1ms 

我使用authorization_rules文件,以管理訪問權限,但我已經有了開發ENV沒有問題,正如我以前說過。

如果我把在admin/dashboard#index行動斷點,它不會被執行,因爲它沒有達到。它破壞了httpserver文件(我一步一步地調試它),但我不明白爲什麼它可以在Dev上運行,而不是在Prod env上運行。

請幫助。

感謝, 布賴恩

UPDATE

我forgor一提的是,在我的ApplicationController,有一個名爲的before_filter和check_plan_features它問的第一件事就是unless current_user.blank? #redirects to Admin section

我注意到,在登錄,使用後設計,current_user擁有用戶的價值,但是當重定向到管理部分後,它回來相同的過濾器,而這個時候,current_user爲空。 因此,我認爲,在嘗試訪問管理部分後,用戶的會話以某種方式被銷燬。但是,由於這隻發生在生產環境中,我仍然想知道可能是什麼。

+0

我遇到了類似的問題。只是修復它。不知道你是否面臨同樣的問題。我的問題是我愚蠢地將此添加到user.rb'before_validation做 self.roles = [「正常」]如果roles.blank? 如果password.blank? self.password = DEFAULT_PASSWORD self.password_confirmation = DEFAULT_PASSWORD end end '.. – raven

+2

您是否設法解決這個問題? – DazBaldwin

+1

@ brian-roisentul你是如何解決這個問題的?我很喜歡確切的問題。 –

回答

1

我只是有這個確切的問題(使用軌道4,並制定3)。

的解決方案是一個域聲明添加到config/initializers/session_store.rb文件是這樣的:

YourAppName::Application.config.session_store :cookie_store, key: '_your_session', domain: { 
    production: 'production_domain', 
    development: 'development_domain' 
}.fetch(Rails.env.to_sym, :all) 

雖然這是很重要的,這是最初改變由於增加子域的應用程序。

+0

這不適合我,而且,我在本地主機上的開發中獲得了ActionController :: InvalidAuthenticityToken。 –

相關問題