Rails中的链接不起作用

时间:2015-02-13 05:06:08

标签: ruby-on-rails ruby-on-rails-3 authentication ruby-on-rails-4 devise

我正在使用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

如果我以用户身份登录,则会显示该页面,如果不是,则会重定向到主页。

现在,我的问题在于那里的链接。它不起作用!我怎样才能解决这个问题?

谢谢。

2 个答案:

答案 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!