2008-09-20 11 views
27

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

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

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

ответ

53

Я думаю, что пространство имен является решение проблемы вы здесь:

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 

И сделать это inhert из вашей ApplicationController:

class Admin::CustomersController < Admin::AdminController 

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

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

+5

несколько вещей, которые вы должны добавить к этому ответу, чтобы помочь нам использовать rails n00bs: упомянуть, что первый блок кода находится в routes.rb, а также указывается, что вам нужно установить rspec и rspec-rails gems для создания rspec_controller , – DJTripleThreat 2009-12-04 10:53:19

5

Я использовал Оптимизированный довольно широко.

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

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

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