1

我按照 Devise Wiki 创建了一个非常基本的管理设置,方法是以布尔格式向我的用户表添加一个管理列。

我进入了我的表(通过 SQlite 管理员)并分配了我的一个用户作为管理员。

然后我认为我有以下代码:

<% if user_signed_in? %>
  <% if current_user.admin? %>
    <%= link_to "Admin Job Post", new_user_job_path(current_user.id) %>
  <% else %>
    <%= link_to "Post a new job", new_user_job_path(current_user.id) %>
  <% end %>
<% else %>
  <%= link_to "Post a new job", new_user_session_path %>
<% end %> 

我遇到的问题是,<%= link_to "Post a new job", new_user_job_path(current_user.id) %>即使使用管理员用户登录,我的应用程序也只会返回我的应用程序。

获得解决方案会很棒,因为我尝试了几种变体但无法使其正常工作。

在此先感谢您的帮助!

4

4 回答 4

0

你确定你让用户成为管理员吗?要使用户成为管理员,您应该运行以下命令

User.find(#id_of_user_you_want_to_make_admin)
User.admin = true
User.save!
于 2014-01-31T19:49:10.970 回答
0

我不确定您的全部代码,但我有类似的设置,但是一旦用户以管理员身份登录,我使用以下内容显示链接(我使用“尝试”,因为它是在“user_logged_in”检查之外)。

<% if current_user.try(:admin?) %>
    <li><a href="#">AdminLink</a></li>
<% end %>
于 2013-10-01T18:29:06.447 回答
0
<% if current_user.present? && current_user.has_role?(:admin) %>
    <li><%= link_to 'Some Cool Admin Feature', cool_admin_path %></li>

如果您将 Rails 4 与 Devise 2.x 一起使用,这就是您要寻找的东西。注意 :admin 周围的 () 不是必需的,为了清楚起见,我将它们包括为 '?' 之后该方法似乎会抛出对 ruby​​ 不熟悉的人。

于 2014-04-11T04:13:00.813 回答
0

授予管理员权限的另一种方法是简单地使用<% if current_user.try (:email) == "admin@example.com" %>That always works for me。这样您就不必担心整个系统。

于 2016-05-09T11:14:22.537 回答