2011-01-25 33 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进行身份验证,并像处理任何其他控制器一样处理身份验证(链接页面上可用的最小示例)。