代码之家  ›  专栏  ›  技术社区  ›  stackow1

用户如何将这两个系统结合起来?

  •  0
  • stackow1  · 技术社区  · 9 年前

    请帮忙解决这个问题。

    在轨道4上,我安装了gem“design”。在我安装gem“activeadmin”之后。结果我有2个用户系统:

    create_table "admin_users", force: :cascade do |t|
      t.string   "email",                  default: "", null: false
      t.string   "encrypted_password",     default: "", null: false
      t.string   "reset_password_token"
      t.datetime "reset_password_sent_at"
      t.datetime "remember_created_at"
      t.integer  "sign_in_count",          default: 0,  null: false
      t.datetime "current_sign_in_at"
      t.datetime "last_sign_in_at"
      t.string   "current_sign_in_ip"
      t.string   "last_sign_in_ip"
      t.datetime "created_at"
      t.datetime "updated_at"
    end
    
    create_table "users", force: :cascade do |t|
      t.string   "email",                  default: "", null: false
      t.string   "encrypted_password",     default: "", null: false
      t.string   "reset_password_token"
      t.datetime "reset_password_sent_at"
      t.datetime "remember_created_at"
      t.integer  "sign_in_count",          default: 0,  null: false
      t.datetime "current_sign_in_at"
      t.datetime "last_sign_in_at"
      t.string   "current_sign_in_ip"
      t.string   "last_sign_in_ip"
      t.datetime "created_at"
      t.datetime "updated_at"
    end
    

    对于进入adminpanel,我使用adminusers登录名和密码。对于进入站点的私有部分,我使用用户登录和密码。

    但我需要你让管理员用户能够进入站点的私有部分。

    2 回复  |  直到 9 年前
        1
  •  1
  •   Alexander Shlenchack    9 年前

    安装ActiveAdmin时,应跳过用户生成:

    rails generate active_admin:install --skip-users
    

    或者告诉广告使用另一个型号名称:

    rails g active_admin:install User
    

    此外,您应该考虑为用户模型使用单个表。如果您需要单独的用户,您可以:

    添加一些用于定义管理员用户的字段:

    add_column :users, :is_admin, :boolean, default: false
    

    或为用户创建角色

    class User < ActiveRecord::Base
      belongs_to :role
    end
    
    class Role < ActiveRecord::Base
      has_many :users
    end
    

    或创建STI

    class Admin < User
      # other code here
    end
    
        2
  •  1
  •   Moustafa Sallam    9 年前

    你应该告诉我 activeadmin 的名称 user model 安装时,即 rails g active_admin:install User

    这将指示activeadmin使用现有模型。

    有关更多信息,请访问 activeadmin site