Существует много способов сделать это. Это зависит от вашего проекта и его сложности. Самое простое решение будет добавить столбец администратора в модели пользователя, что-то вроде:
rails generate migration AddAdminToUsers admin:boolean
rails db:migrate
и назначить верный пользователя с правами администратора из таблицы пользователей БД. Например, первый пользователь из вашей БД. В рельсах консоли:
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?
от ваших взглядов. (При условии, что вы уже хранится идентификатор пользователя в сессии хэша: 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
Есть много других способов, как добавление ролей, дифференцируются администратора таблицы из таблицы Users. Если вы решите дифференцировать администратор из таблицы users, вам также потребуется контроллер Admin и модель администратора. Надеюсь, я дал вам идею начать.