【发布时间】:2015-12-08 16:02:35
【问题描述】:
我有一个设计用户,在里面我有 admin 作为布尔值,默认为 false。如何在我的 ruby on rails 应用程序中修复我的路线,以便它只允许拥有 admin 为 true 的管理员访问某些页面。
更新: 我改变了我得到的第一个答案,说要创建一个 is_admin?我的控制器中的方法并指定哪些操作。但是,当我这样做时,我会得到:
undefined method `admin' for nil:NilClass
更新 2:
产品控制器:
class ProductsController < ApplicationController
before_action :is_admin?, only: [:edit, :update, :destroy]
before_action :set_product, only: [:show]
应用控制器:
def is_admin?
if signed_in?
redirect_to root_path unless current_user.admin
end
end
【问题讨论】:
-
消除你的未定义方法错误将
current_user.admin更改为current_user.try(:admin)看来你的signed_in?方法没有检查current_user的存在
标签: ruby-on-rails devise