2011-01-25 37 views
4

我有我的應用程序的HTML用戶指南。但我不希望那些沒有登錄的人能夠訪問它。我正在使用Devise身份驗證和CanCan授權。如何在Rails 3中保護靜態內容?

+0

所有好的答案,但我沒有得到任何他們的工作。我對這個困難感到驚訝。 另一個問題是,即使我得到這些頁面被提供,Rails在源文件中看到類似'src =「help.htm」的靜態URL,並將它們預先加上斜槓。因此,它們不是相對鏈接,而是作爲絕對鏈接提供服務。我該如何解決這個問題? – AKWF 2011-01-25 20:40:29

+0

檢查這個簡短的列表,看看它是否有助於你創建類似於你的環境的東西http://railscasts.com/episodes/82-http-basic-authentication – ddayan 2011-01-25 21:15:49

回答

0

我不熟悉並且與您所使用的身份驗證方法,但一旦你驗證用戶可以節省LOGGED_IN標誌在會話

session[:user]='logged_in' 

比你可以創建一個助手

def logged_in? 
    session[:user] =='logged_in' 
end 

現在您將在安倍晉三視圖你

<% if logged_in? %> 
    your html 
<% end %> 
使用這個幫手

現在這是非常基本的,如果你需要更具體的東西讓我們知道

- 所以我只是注意到,你要確保只有登錄用戶才能看到整個頁面。

,那麼你應該用你過濾器前進行驗證功能爲你控制器

before_filter :authenticate 
0

看看在High Voltage插件。

這是一個相當簡單的控制器,旨在爲靜態內容提供服務。通過擴展HighVoltage :: PagesController進行身份驗證,並像處理任何其他控制器一樣處理身份驗證(鏈接頁面上可用的最小示例)。