- У меня
Devise Admin
&Devise User
; - Я хочу использовать пространства имен;
То, что я хочу добиться:Devise crud + namespaces: Pro level :)
только- изобрести администратор может создать пользователя
registerable
DEViSE для пользователя не удаляются, так что он может изменить только страницу- пользователь может видеть только current_user/показать страницу
То, что я
маршруты:
Rails.application.routes.draw do root :to => 'dashboard#index'
devise_for :users, controllers: { registrations: 'user_registrations' }
devise_for :admins, controllers: { registrations: 'admin_registrations' }
get 'dashboard/index'
namespace :admin do
root 'dashboard#index'
resources :users
end
user_registration_controller:
class UserRegistrationsController < Devise::RegistrationsController
end
users_controller:
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def edit
end
def create
@user = User.new(user_params)
respond_to do |format|
if @guest.save
format.html { redirect_to users_path }
else
format.html { render :new }
end
end
end
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to @user }
else
format.html { render :edit }
end
end
end
def destroy
user = User.find(params[:id])
user.destroy
redirect_to users_path
end
private
def set_user
@user = User.find(params[:id])
end
def user_params
params.require(:user).permit(:email, :password, :password_confirmation)
end
end
+ У меня есть взгляды пользователей, как они будут в нормальном эшафот.
=> С помощью этой установки, любой пользователь может создать пользователю
Любые идеи, как решить вопросы на вершине? ..
Подход, основанный на авторизации, который вы описываете, замечательный, однако я предполагал пойти с разными 'Devise admin' &' Devise user', потому что позже они будут иметь разные ассоциации с другими моделями ('scaffold event title admin: reference starts_at : date', 'scaffold посещаемость событие: ссылки пользователь: ссылки',' scaffold назначение admin: ссылки пользователь: ссылки start_at: date' ... – makerbreaker
Я бы действительно не советовал, что вы можете установить отношения просто отлично с одним пользователем class. Если вы хотите вызвать отношение 'belongs_to:: admin', вы можете просто предоставить опцию' class_name'. Я думаю, вы недооцениваете, насколько сильно это испортит вам систему авторизации, вы можете в основном разработать систему, если вы идете вниз этот маршрут. Кроме того, его не рекомендуется использовать строительные леса, кроме прототипа в шипе. Вы легко обойдете себя, создав путь к человеку y действий/представлений и т. д., которые не были должным образом заблокированы или протестированы. – max
Благодарим вас за руководство. Я думаю, что я каким-то образом попробую вариант 2-devise-model + namespace, а auth gems + одна модель будет следующей :). – makerbreaker