使用devise gem,我的管理员如何在rails4中作为管理员和用户工作

时间:2014-08-24 16:02:11

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

在我的项目中,我使用'设计'宝石。在这里,我有两个模型,一个用于用户,另一个用于管理员。现在我希望我的管理员既可以作为管理员也可以作为用户使用。

这是我的控制器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

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

谢谢, Mezbah

1 个答案:

答案 0 :(得分:1)

您可以使用继承。

在ActiveRecord中,通过向模型添加列类型: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

管理员将拥有对用户界面的完全访问权限