Бэкэнд администрирование в Ruby on Rails - PullRequest
28 голосов
/ 20 сентября 2008

Я хотел бы создать очень быстрый и грязный административный бэкэнд для приложения Ruby on Rails, к которому я был присоединен в последнюю минуту. Я посмотрел на activescaffold и упорядочил их, и думаю, что они оба очень привлекательны, и их должно быть легко запустить, но я не совсем понимаю, как настроить любую из них в качестве страницы администрирования бэкэнда. Похоже, они предназначены для работы как стандартные генераторы / каркасы Ruby on Rails для создания видимых внешних интерфейсов с соответствием имен модель-вид-контроллер-таблица.

Как создать интерфейс admin_players, когда плееры уже используются, и вы хотите, насколько это возможно, не затрагивать какие-либо связанные с ним файлы?

Показ, редактирование и индекс исходного ресурса не могут использоваться администратором.

Ответы [ 4 ]

53 голосов
/ 20 сентября 2008

Я думаю, что пространства имен - это решение вашей проблемы:

map.namespace :admin do |admin|
    admin.resources :customers
end

, который будет создавать маршруты admin_customers, new_admin_customers и т. Д.

Тогда внутри каталога app/controller вы можете иметь каталог admin. Внутри вашего админ-каталога создайте админ-контроллер:

./script/generate rspec_controller admin/admin

class Admin::AdminController < ApplicationController

  layout "admin"
  before_filter :login_required
end

Затем создайте контроллер клиентов администратора:

./script/generate rspec_controller admin/customers

И сделайте это наследником вашего ApplicationController:

class Admin::CustomersController < Admin::AdminController

Это будет искать виды в app/views/admin/customers и будет ожидать макет в app/views/layouts/admin.html.erb.

Затем вы можете использовать любой плагин или код, который вам по душе, для реального администрирования, оптимизации, ActiveScaffold, что бы я ни хотел использовать resourcecs_controller, так как это экономит ваше время, если вы используете REST * Архитектура в стиле 1025 * и использование этого маршрута может сэкономить много времени в другом месте. Хотя, если вы унаследовали приложение, это уже спорный вопрос.

6 голосов
/ 23 мая 2011

Проверьте active_admin на https://github.com/gregbell/active_admin.

5 голосов
/ 20 сентября 2008

Я довольно широко использовал Streamlined.

Чтобы заставить Streamline работать, вы создаете свои собственные контроллеры - так что вы можете фактически запустить его отдельно от остальной части вашего приложения, и вы даже можете запустить его в отдельной папке 'admin' и пространстве имен, которые можно защитить с помощью .

Вот контроллер Customers из недавнего приложения:

class CustomersController < ApplicationController
  layout 'streamlined'
  acts_as_streamlined       

  Streamlined.ui_for(Customer) do
    exporters :csv   
    new_submit_button :ajax => false 
    default_order_options :order => "created_at desc"   
    list_columns :name, :email, :mobile, :comments, :action_required_yes_no  
  end
end
1 голос
/ 09 февраля 2011

Использование https://github.com/sferik/rails_admin.

...