1

これに関する適切なチュートリアルが見つからないようで、少し壁にぶつかりました。

基本的な CRUD アプリで Rails 4.2.0 を使用しています。認証にはdeviseを使用し、ロールにはCancancanを使用しています。これらにはかなり理解しやすいドキュメントがあるためです。

2 種類のユーザーがいます。

ユーザーと管理者。

管理者はすべてのモデルと対話できます。追加・編集・削除など

ユーザーは特定のモデルとのみ対話できます。これは一種の予約システムになります。

これを設定するために必要なプロセスがよくわかりません。ユーザータイプごとに完全な Rails 生成を行う必要がありますか? それとも Devise 生成だけを使用できますか? それに加えて、ユーザーの種類を選択するにはどうすればよいですか? これまでのところ、機能する 2 つのログイン リンクがあります。

私が抱えている主な問題は、カンカンカンで役割を定義することです。

この件に関するヘルプ/質問は大歓迎です。

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 に答える