2011-10-09 83 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 

相關問題