2013-03-14 48 views
0

我一直在使用Rails Admin,並且我想在爲模型創建和更新操作之後自定義重定向。保存在Rails Admin後重定向到自定義操作

我創建了一個新的插件,並在後端建立了它。我可以點擊該標籤,然後將我帶到視圖頁面。我想要做的是重寫編輯並創建操作以在保存/更新後重定向到此頁面。

我在谷歌搜索,但由於某種原因,我嘗試的一切都不起作用。任何見解都會受到歡迎。

謝謝。

=====

我想重定向到一個裁切頁面之後。我不確定我會在哪裏放置該代碼。我是否將它放到下面的RailsAdminCrop模塊中?如果是這樣,怎麼樣?文檔沒有提到這一點。

配置:

require 'rails_admin/config/actions' 
require 'rails_admin/config/actions/base' 
require "rails_admin_crop/engine" 

module RailsAdminCrop 
end 

module RailsAdmin 
    module Config 
    module Actions 
     class Crop < RailsAdmin::Config::Actions::Base 


     register_instance_option :member do 
      true 
     end 

     register_instance_option :link_icon do 
      'icon-th-large' 
     end 

     register_instance_option :controller do 
     Proc.new do 
      flash.now[:notice] = ": #{@object.title}." 
     end 
     end 


     end 
    end 
    end 
end 

還是我把它放到rails_admin.rb初始化傳遞一個塊的編輯操作?如果是這樣,我會放什麼樣的配置?

module RailsAdmin 
    module Config 
     module Actions 
     class Crop < RailsAdmin::Config::Actions::Base 
      RailsAdmin::Config::Actions.register(self) 
     end 
     end 
    end 
    end 

config.actions do 
    dashboard 
    index 
    new 

    crop 

    show 
    edit 
    delete 
    end 

耙路線(這是缺省路由)後:

Routes for RailsAdmin::Engine: 
    dashboard GET  /         rails_admin/main#dashboard 
     index GET|POST /:model_name(.:format)     rails_admin/main#index 
      new GET|POST /:model_name/new(.:format)    rails_admin/main#new 
     export GET|POST /:model_name/export(.:format)   rails_admin/main#export 
    bulk_delete POST|DELETE /:model_name/bulk_delete(.:format)  rails_admin/main#bulk_delete 
history_index GET   /:model_name/history(.:format)   rails_admin/main#history_index 
    bulk_action POST  /:model_name/bulk_action(.:format)  rails_admin/main#bulk_action 
     show GET   /:model_name/:id(.:format)    rails_admin/main#show 
     edit GET|PUT  /:model_name/:id/edit(.:format)  rails_admin/main#edit 
     delete GET|DELETE /:model_name/:id/delete(.:format)  rails_admin/main#delete 
history_show GET   /:model_name/:id/history(.:format)  rails_admin/main#history_show 
    show_in_app GET   /:model_name/:id/show_in_app(.:format) rails_admin/main#show_in_app 
+0

你有什麼試過的?你可以給我們你的代碼控制器,你試圖重定向創建和更新操作? 你想讓他們重定向他們在哪裏?還嘗試給耙路線列表 – Zippie 2013-03-14 21:09:00

+0

我更新了問題,包括我的代碼,路線和其他問題。 – anthonycollini 2013-03-14 21:37:30

回答

0

我不相信你可以通過配置做到這一點,你需要擴展插件。此外,每個動作只能使用一個redirect_to或render,因此您需要將該動作分配給一個變量,然後在最後調用它。

register_instance_option :controller do 
    Proc.new do 

    flash.now[:notice] = ": #{@object.title}." 

    if request.post? || request.put? 
     some_action = "do_something" 
    else 
     some_action = @action.template_name 
    end 

    render :action => some_action 
    end 
end