Link 在 Rails 中不起作用
Link in Rails doesn't work
我正在使用 Rails 4 和 Devise 3.4.1
我有两个页面。未经身份验证的用户不应访问这两个页面之一。我在主页中有一个导航栏,其中列出了该仪表板页面的 link。
这是link
<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
如果我以用户身份登录,页面就会显示,如果我没有,那么我将被重定向到主页。
现在,我的问题是上面的 link。它不起作用!我怎样才能解决这个问题?
谢谢。
要在控制器中使用 "user_signed_in?",我很确定您需要在同一个控制器中使用 Devise 的 before_filter:
before_filter :authenticate_user!
好的,我修好了。我使用了以下内容:
<li><%= link_to "Dashboard", "/pages/dashboard", method: :get %></li>
而不是:
<li><a href="/pages/dashboard/">Dashboard</a></li>
我正在使用 Rails 4 和 Devise 3.4.1
我有两个页面。未经身份验证的用户不应访问这两个页面之一。我在主页中有一个导航栏,其中列出了该仪表板页面的 link。
这是link
<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
如果我以用户身份登录,页面就会显示,如果我没有,那么我将被重定向到主页。
现在,我的问题是上面的 link。它不起作用!我怎样才能解决这个问题?
谢谢。
要在控制器中使用 "user_signed_in?",我很确定您需要在同一个控制器中使用 Devise 的 before_filter:
before_filter :authenticate_user!
好的,我修好了。我使用了以下内容:
<li><%= link_to "Dashboard", "/pages/dashboard", method: :get %></li>
而不是:
<li><a href="/pages/dashboard/">Dashboard</a></li>