2011-10-17 17 views
3

我知道我不應該在部分圖庫視圖中爲我的圖庫生成新的關聯圖像。但是,我無法想象在ActiveAdmin生成的控制器中執行此操作,該控制器顯然可以使用資源文件中的「控制器」方法進行自定義。我怎樣才能使用Controller方法而不是視圖部分?ActiveAdmin:想從控制器建立新的關聯,而不是視圖部分

這裏是我的畫廊資源文件:

ActiveAdmin.register Gallery do 

    controller.authorize_resource 

    scope_to :current_admin_user 

    before_filter :block_access 

    controller do 
    def block_access 
     if params && params['q'] && params['q']['admin_user_id_eq'] 
     params['q']['admin_user_id_eq'] = nil 
     end 
    end 
    end 

form :partial => "form" 

end 

這裏是我的相冊查看部分:

<% new_image = @gallery.images.build %> 
    <%= semantic_form_for [:admin, @gallery] do |g| %> 
    <%= g.inputs "Details" do %> 
     <%= g.input :title %> 
     <%= g.input :images, :as => :check_boxes, :label_method => Proc.new { |image| image_tag(image.thumb_path, :alt => "") + content_tag("h3", image.title) } %> 
    <% end %> 
    <%= g.inputs :for => [:images, new_image], :name => "New Image" do |image| %> 
     <% if image.object.new_record? %> 
     <%= image.input :title %> 
     <%= image.input :asset, :as => :file %> 
     <% end %> 
    <% end %> 
    <%= g.buttons %> 
    <% end %> 

更新#1:添加里面以下方法 「控制器做」 塊(基於Thomas Watson的建議)用於創建/編輯畫廊。

def new 
    @gallery = Gallery.new 
    @new_image = @gallery.images.build 
    new! 
end 

def edit 
    @gallery = Gallery.find(params[:id]) 
    @new_image = @gallery.images.build 
    edit! 
end 

def update 
    @gallery = Gallery.find(params[:id]) 
    @new_image = @gallery.images.build 
    update! 
end 

回答

2

活動管理依賴於Inherited Resources其行動魔術。您可以打開任何控制器操作並添加內容。您甚至可以創建自己的實例變量,並且Active Admin將自動使用該變量,而不是創建自己的實例變量。

在你的情況,你會做這樣的事情,如果你在哪裏建立它的新動作:

ActiveAdmin.register Gallery do 
    controller do 
    def new 
     @gallery = Gallery.new 
     @new_image = @gallery.images.build 

     # call `new!` to ensure that the rest of the action continues as normal 
     new! 
    end 
    end 
end 
+0

當我這樣做,我失去了主動管理佈局。如果我強迫它使用活動的管理佈局,我會得到佈局,但頂部沒有導航,基本上我失去了所有的好處。我使用0.2.2,將升級到0.3.x照顧這個問題? –

+0

不幸的是我不記得是否有像這樣的錯誤是0.2.2。但它在v0.3中適用於我 –

相關問題