Ruby on Rails 中的后端管理
Posted
技术标签:
【中文标题】Ruby on Rails 中的后端管理【英文标题】:Backend administration in Ruby on Rails 【发布时间】:2010-09-11 13:59:05 【问题描述】:我想为我在最后一刻附加到的 Ruby on Rails 应用程序构建一个真正快速而肮脏的管理后端。我查看了 activescaffold 和 streamlined 并认为它们都非常有吸引力并且它们应该很容易运行,但我不太明白如何将其中任何一个设置为后端管理页面。它们似乎被设计为像标准 Ruby on Rails 生成器/支架一样工作,用于创建具有模型-视图-控制器-表名称对应的可见前端。
当播放器已经在使用中并且您希望尽可能避免影响其任何相关文件时,如何创建 admin_players 界面?
原始资源的显示、编辑和索引对管理员不可用。
【问题讨论】:
【参考方案1】:我认为命名空间是解决您遇到的问题的方法:
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 风格的架构,它可以为您节省大量时间,并且强迫自己走这条路可以在其他地方节省大量时间。不过,如果您继承了应用程序,那现在还没有实际意义。
【讨论】:
您应该在此答案中添加几件事以帮助我们使用 rails n00bs:提到第一个代码块位于 routes.rb 中,还提到您需要安装 rspec 和 rspec-rails gems为了生成一个 rspec_controller。 亲爱的 Laurie Young,您能为 Rails 3 重写您的示例吗?【参考方案2】:请查看https://github.com/gregbell/active_admin 的 active_admin。
【讨论】:
【参考方案3】:我已经相当广泛地使用 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
【讨论】:
【参考方案4】:使用https://github.com/sferik/rails_admin。
【讨论】:
以上是关于Ruby on Rails 中的后端管理的主要内容,如果未能解决你的问题,请参考以下文章