我正在使用Rails 4和Devise 3.4.1
我有两页。未经身份验证的用户不应访问这两个页面中的一个。我在主页中有一个导航栏,其中列出了指向该仪表板页面的链接。
这是链接
<li><a href="/pages/dashboard/">Dashboard</a></li>
为了防止对该页面进行未经身份验证的访问,我按如下方式修改了页面控制器:
class PagesController < ApplicationController
def home
end
def dashboard
if user_signed_in?
render "dashboard"
else
render "home"
end
end
end
到目前为止一切顺利。这对我有用,我很高兴。当我手动输入以下地址栏时:
localhost:3000/pages/dashboard
如果我以用户身份登录,则会显示该页面,如果不是,则会重定向到主页。
现在,我的问题在于那里的链接。它不起作用!我怎样才能解决这个问题?
谢谢。
答案 0 :(得分:1)
好的我修好了。我使用了以下内容:
<li><%= link_to "Dashboard", "/pages/dashboard", method: :get %></li>
而不是:
<li><a href="/pages/dashboard/">Dashboard</a></li>
答案 1 :(得分:0)
使用“user_signed_in?”在控制器中我很确定你需要在同一个控制器中使用Devise的before_filter:
before_filter :authenticate_user!