0

我一直在使用 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

在 rake 路由之后(这是默认路由):

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
4

1 回答 1

0

我不相信你可以通过配置来做到这一点,你需要扩展插件。此外,您只能使用一个 redirect_to 或每个操作呈现,因此您需要将操作分配给一个变量,然后在最后调用它。

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
于 2013-03-22T00:28:36.660 回答