3

アプリのdeviseを使用して管理者ロールを作成する必要があります。devise を使用して基本認証を作成しました。アプリに考案したユーザー モデルがありますが、編集を表示してすべてのユーザーを破棄できる管理者が必要です。チュートリアルに従ってみましたが、どれも役に立ちませんでした。Rails 3.0.10 と Ruby 1.9.2-p290 を使用しています。

4

2 に答える 2

3

migrationin を作成して、最初に role.rb を定義するだけです。

      rails g model role  name:string

次にrole.rbで

      class Role
         has_one:user
      end

そしてユーザーモデルで

      class user
         belongs_to :role
      end

2 つのロールを DB に挿入する

   1.admin
   2.user

あとはこれでチェック

    if user.role.name == "admin"  
        # can do all your logic
    else
         your logic
    end

ユーザーモデルに role_id:integer を必ず挿入してください

それを試してみてください.......

于 2012-04-19T06:36:22.467 に答える
1

あなたと同様の要件があり、ユーザーがサインアップできるようにしたくありません。すべて管理者が処理します。彼女は私がやったこと。

Admin という別のデバイス モデルを追加しました

rails generate devise MODEL

ユーザーモデルの「登録可能」を無効にして、ユーザーが自分でサインアップできないようにします

user.rb

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :registerable,    :timeoutable and :omniauthable
  devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name,  :last_name, :role, :admin
  # attr_accessible :title, :body
end

ここのサンプルを使用して、ユーザーの CRUD を有効にします: https://gist.github.com/1056194

最後に、ユーザーのコントローラーを次のように保護します

users_controller.rb

# Add this
before_filter :authenticate_admin!

お役に立てれば。

于 2012-04-19T09:35:47.727 に答える