Ich erstellte einen Benutzer mit Device Gem und zuweisen ein boolesches Feld, um anzuzeigen, ob der Benutzer ein Administrator ist. Ich habe keine Beispiele gefunden, wie nur der Administrator Benutzer kann einen anderen Benutzer registrierenNur Administrator-Benutzer erstellen neue Benutzer in Rails mit Devise
habe ich einen Usercontroller:
class UserController < ApplicationController
before_action :is_admin?, only: [:new, :create, :destroy]
def new_user
end
def create
end
protected
def is_admin?
if !user_signed_in?
redirect_to user_session_path
elsif !((current_user.is? :admin) & (user_signed_in?))
redirect_to root_path
end
end
end
und meine Routen-Datei:
devise_for :users, controllers: {
sessions: "user/sessions",
confirmations: 'user/confirmations',
passwords: 'user/passwords' }
get 'users/new_user' => 'user#new_user', as: :new_user
post 'users/create_user' => 'user#create', as: :create_user
aber meiner Ansicht new_user.html.erb zeigt diesen Fehler:
undefined local variable or method `resource' for #<#<Class:0x007efbcc054a78>:0x007efbe003f880>
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<% end %>