В настоящее время у меня есть простая и эффективная настройка авторизации, как показано ниже.
В настоящее время пользователи-администраторы (и никто другой) могут удалять сообщения.Тем не менее, я также хотел бы позволить пользователям иметь возможность уничтожать их собственную запись.
Как мне этого добиться?
user.rb
def editor?
self.role == 'editor'
end
def admin?
self.role == 'admin'
end
контроллер приложения
helper_method :current_user
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def require_user
redirect_to '/login' unless current_user
end
def require_editor
redirect_to '/' unless current_user.editor?
end
def require_admin
redirect_to '/' unless current_user.admin?
end
выводит контроллер
before_action :require_user, only: [:show, :edit, :update, :destroy]
before_action :require_editor, only: [:edit]
before_action :require_admin, only: [:destroy]
в виде
<% if current_user && current_user.admin? %>
# Destroy button
<% end %>