在我的项目中,我使用'设计'宝石。在这里,我有两个模型,一个用于用户,另一个用于管理员。现在我希望我的管理员既可以作为管理员也可以作为用户使用。
这是我的控制器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
答案 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
管理员将拥有对用户界面的完全访问权限