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>