@ermolushka

Как правильно прикрутить админку в Rails?

Есть scaffolding Items name:string price:decimal email:string status:string. Любой пользователь может создать новую вещь? которйо будет присвоен статус: в рассмотрении/ Нужно как-то прикрутить админку, чтобы админ заходил, проверял эти заявки и отклонял их (тогда статус = отклонен) или редактировал (в стандартной форме, которую заполняет юзер, отсутствует поле price, но должно быть в форме, которую заполняет админ)/ Вот думаю, как бы это все сделать красиво.
  • Вопрос задан
  • 490 просмотров
Решения вопроса 2
@maxprof
Студент
Теоретически все просто, есть пользователь с правами админа. Например @user.admin = true.
При выводе полей прячешь поле цены, если @user.admin = false.
Ответ написан
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
1. Вариант берет готовый гем типа rails_admin, Active Admin и любой другой.
2. Пишите свою админку.

Второй вариант по шагам.
1. Прикручиваете Device
2. Создаете отдельный контроллер для админки и роуты
dashboard_controller.rb
class DashboardController < ApplicationController
  # это метод который предоставляет Device. Он определяет авторизован ли User или не очень.
   before_action :authenticate_user! 
end

config/routes.rb
...
devise_for :users
namespace :dashboard do
  # тут указываем роуты которые будут работать в админке.   
end
...

Создаем папочки
app/controllers/dashboard - для контроллеров админки.
app/views/dashboard - для вьюх админки.

Создаем файлы
app/assets/javascripts/dashboard.js - JS админки
app/assets/stylesheets/dashboard.css - CSS админки
app/views/layouts/dashboard.html.erb - layout админки

Добавляем новые файлы в config/initializers/assets.rb , что-бы они отдельно компилировались
Rails.application.config.assets.precompile += %w( dashboard.css dashboard.js )


Контроллеры админки обозначаем прмерно так:
class Dashboard::SettingsController < DashboardController
....
end


Ну а дальше в основном всё как обычно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы