28

我想为我在最后一刻附加到的 Ruby on Rails 应用程序构建一个真正快速而肮脏的管理后端。我查看了 activescaffold 和 streamlined 并认为它们都非常有吸引力并且它们应该很容易运行,但我不太明白如何将其中任何一个设置为后端管理页面。它们似乎被设计为像标准的 Ruby on Rails 生成器/脚手架一样工作,用于创建具有模型-视图-控制器-表名称对应的可见前端。

当播放器已经在使用中并且您希望尽可能避免影响其任何相关文件时,如何创建 admin_players 界面?

管理员无法使用原始资源的显示、编辑和索引。

4

4 回答 4

53

我认为命名空间是您在这里遇到的问题的解决方案:

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

这将创建路线admin_customersnew_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,无论我个人喜欢使用什么,因为如果您使用REST风格的架构,resourcecs_controller它可以为您节省大量时间,并且强迫自己走这条路可以在其他地方节省大量时间。尽管如果您继承了该应用程序,那现在还没有定论。

于 2008-09-20T09:34:11.580 回答
6

请在https://github.com/gregbell/active_admin查看 active_admin 。

于 2011-05-23T13:59:04.467 回答
5

我已经非常广泛地使用了 Streamlined。

要让 Streamline 正常工作,您需要创建自己的控制器 - 这样您就可以完全独立于应用程序的其余部分运行它,甚至可以在单独的“管理”文件夹和命名空间中运行它.

这是最近应用程序中的客户控制器:

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
于 2008-09-20T09:23:22.557 回答
1

使用https://github.com/sferik/rails_admin

于 2011-02-09T04:10:14.710 回答