1

我似乎找不到一个很好的教程,而且我遇到了一些困难。

我正在使用带有基本 CRUD 应用程序的 rails 4.2.0。对于身份验证,我使用的是设计,对于角色,我使用的是 Cancancan,因为这些文档具有相当易于理解的文档。

我有两种类型的用户:

用户和管理员。

管理员可以与所有模型进行交互。添加-编辑-删除等

用户只能与某些模型进行交互。这将是一个预订系统。

我不太确定设置它需要经历的过程。我是否需要为每个用户类型生成完整的 rails 或者我可以只使用 Devise 生成?除此之外,我如何选择用户类型?到目前为止,我有两个有效的登录链接。

我遇到的主要问题是在 cancancan 中定义角色。

任何有关该主题的帮助/问题将不胜感激。

4

1 回答 1

3

为简单起见,您可以admin在 users 表上添加一个布尔列。您将使用user.admin?.

这是迁移的样子。

> rails g migration add_admin_to_users

在您的迁移文件中,我会在运行它之前将默认值设置为 false。

class AddAdminToUsers < ActiveRecord::Migration
  def up
    add_column :users, :admin, :boolean, null: false, default: false
  end

  def down
    remove_column :users, :admin
  end
end

默认情况下,您的用户不是管理员。但是,您可以轻松地将用户设置为管理员user.update_column(:admin, true)

有了这个,您应该能够关注 CanCanCan 文档,因为我相信它们非常广泛。

class Ability
  include CanCan::Ability

  def initialize(user)
    user ||= User.new

    if user.admin?
      # admin abilities
    else
      # non-admin abilities
    end
  end
end

http://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities

于 2015-02-04T21:47:45.780 回答