有很多方法可以做到这一点。这取决于您的项目及其复杂性。最简单的解决方案是在用户模型中添加admin列,如下所示:
rails generate migration AddAdminToUsers admin:boolean
rails db:migrate
并从DB users表中为admin user分配true。例如,数据库中的第一个用户。在rails控制台中:
rails c
user = User.first # The console will load first user
user.admin = 1 # It will return true
user.save # It will save and assign true to admin user
然后,您只需要在
application_controller.rb
并调用该方法
is_admin?
从你的观点来看。(假设您已经将用户id存储在会话哈希中:
session[:user_id] = user.id
)
helper_method :current_user, :signed_in?, :is_admin?
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def signed_in?
!!current_user
end
def is_admin?
signed_in? ? current_user.admin : false
end
还有很多其他方法,比如添加角色,来区分管理表和用户表。如果您选择将admin和users表区分开来,则需要admin控制器和admin模型。我希望我给了你开始的想法。