【问题标题】:using devise gem, how my admin works as both an admin and a user in rails4使用 devise gem,我的管理员如何在 rails4 中同时作为管理员和用户工作
【发布时间】:2014-08-25 00:38:26
【问题描述】:

在我的项目中,我使用的是“设计”gem。在这里,我有两种模型,一种用于用户,另一种用于管理员。现在我希望我的管理员同时作为管理员和用户工作。

这是我的控制器 main_controller.rb:

class MainController < ApplicationController

  before_action :authenticate_user!

  def index
  end

  def about
  end
end

在我的控制器中:authenticate_user! 正在工作,所以当我以管理员身份登录时,它将接受我的身份验证。

我的模型 admin.rb 文件:

class Admin < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
end

我的模型 user.rb 文件:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,:confirmable,
         :recoverable, :rememberable, :trackable, :validatable
end

我该怎么做?请给我你的建议。

谢谢, 梅兹巴赫

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    您可以使用继承。

    在 ActiveRecord 中,它是通过向模型添加列 type:string 来实现的。

    rails g migration add_type_to_users type:string
    

    然后,您将拥有:

    class User < ActiveRecord::Base
      devise :database_authenticatable, :registerable,:confirmable,
             :recoverable, :rememberable, :trackable, :validatable
    end
    

    class Admin < User
    end
    

    管理员可以完全访问用户界面

    【讨论】:

    • 请多指教
    • 什么会返回 401?
    • 返回,"Started GET "/users/sign_in" for 127.0.0.1 at 2014-08-24 22:59:59 +0600"
    • 试着找到你的设计路线并解决这个问题(你当然有用户和管理员的路线,跳过管理员的路线
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多