Я пытаюсь проверить роль пользователя после входа в систему (Devise), поэтому в пользовательской модели мне нужно role
: ученик и учитель
моя user
модель:
class User < ActiveRecord::Base
enum role: {student: 0, teacher: 1}
belongs_to :user
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
has_many :posts
after_initialize do
if self.new_record?
self.role ||= :student
end
end
end
так что теперь в my application.html.erb
я хочу проверить и отобразить разные навигационные панели, основанные на разных ролях пользователя:
<% if user_signed_in? %>
<% if teacher? %>
<!-- show navbar for teacher -->
<% else %>
<!-- show navbar for student -->
<% end %>
<% else %>
<!-- show login/reg buttons -->
<% end %>
и вот мой application
контроллер:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
helper_method :teacher? , :student?
def teacher?
current_user.role = User.where(role: [:teacher])
end
def student?
current_user.role = User.where(role: [:student])
end
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
devise_parameter_sanitizer.permit(:account_update, keys: [:name])
end
end