2011-10-09 35 views
5

可能重复:
Add page to active adminActiveAdmin如何添加自定义的控制,而不模型

我目前正在寻找一个解决方案添加控制器没有一个模型来管理由ActiveAdmin生成(和Rails 3.1)。 当然,我想在导航栏中添加一个新菜单。使用ActiveAdmin.register MyControllerWithoutModel do不起作用。

编辑:此问题是Add page to active admin的副本,但未找到答案。

+0

一种解决方案是创建一个虚拟模型,但做到这一点后,我有这样的错误:“未定义的方法'quoted_table_name”的MyControllerWithoutModel:类” –

+0

做**不**再次张贴问题,只是因为没有找到答案。如果你有关于这个问题的细节,你可以建议编辑。此外,如果你获得更多的声誉,你可以提供一个赏金的问题,将获得更多的意见和可能更多的答案。故意复制问题可能会导致您帖子上的标志可能导致进一步的版主操作。 – casperOne

回答

0

我一直在寻找这个来编辑应用程序配置,但它接缝,没有模型是不可能的。我只是用db在db中创建了空模型并像往常一样注册资源。

要自定义资源:

禁用过滤

config.clear_sidebar_sections! 

自定义菜单路径

ActiveAdmin.application.namespaces[:admin].resources['Configuration'].namespace.menu.items.each{|i| i.instance_eval('@cached_url[:admin_configurations_path] = "/admin"')} 
2

这是在代码块工作对我来说,刚刚替补正确的名称ViewLogger 。这样你就不必在数据库中创建一个虚拟表。

使用此内容创建文件/app/models/viewlogger.rb,以获得更高级的无表格模型,您可能需要检查http://keithmcdonnell.net/activerecord_tableless_model_gem.html或将您自己的洞察力汇总在一起。现在

match '/admin/viewlogger' => 'admin/viewlogger#index', :as => :admin_viewlogger 

你:

class Viewlogger < ActiveRecord::Base 

    def self.columns 
    @columns ||= [] 
    end 

    # ... 

end 

添加一个条目来/config/initializers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.uncountable %w(viewlogger) 
end 

为您的viewlogger的路线,在配置/ routes.rb中可以按如下方式制定activeadmin寄存器块(请确保您在正确的位置创建了部分视图)

ActiveAdmin.register Viewlogger do 
    config.comments = false 
    before_filter do @skip_sidebar = true end 
    # menu false 
    config.clear_action_items! # this will prevent the 'new button' showing up 


    controller do 
    def index 
     # some hopefully useful code 
     render 'admin/viewlogger/index', :layout => 'active_admin' 
    end 
    end 

相关问题