2013-03-14 49 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