Ruby on Rails中的后端管理

时间:2020-03-06 14:28:50  来源:igfitidea点击:

我想为最后一分钟连接的Ruby on Rails应用程序构建一个真正快速而肮脏的管理后端。我看过activescaffold并进行了精简,认为它们都非常吸引人,并且应该易于运行,但是我不太了解如何将其中一个设置为后端管理页面。它们似乎设计得像标准Ruby on Rails生成器/脚手架一样工作,用于创建具有model-view-controller-table名称对应关系的可见前端。

当玩家已经在使用中并且想要尽可能避免影响其任何相关文件时,如何创建admin_players界面?

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

解决方案

我已经广泛使用了Streamlined。

要使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

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

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,无论我个人喜欢使用resourcecs_controller为何,因为如果我们使用REST风格的体系结构,可以节省大量时间,并且可以避免使用那条路线可以在其他地方节省很多时间。不过,如果我们现在继承了该应用程序,那将是一个有争议的问题。