【问题标题】:Removing Rails Engine's Routes删除 Rails 引擎的路由
【发布时间】:2013-02-21 18:32:01
【问题描述】:

我已阅读Overriding named routes provided by Rails 3 Engines 并征求了一些新的答案,但如果您的目标是删除 批量路由,那么所有解决方案都感觉很糟糕。

Prepending routes 覆盖引擎的路由是有效的;但是,当引擎资源丰富时,它会变得很耗时。嵌套资源增加了复杂性。

An::Engine.routes.prepend do
  match "/route_goes_here" => redirect("/404")
end

就我而言,我想确信所有路线都已消失。

【问题讨论】:

    标签: ruby-on-rails rails-engines


    【解决方案1】:

    如果您要删除路由,则很有可能您还需要修改其他代码(想想使用路径助手的代码,一旦删除路由就不会被定义)。

    对于我的 SuperDuper::Engine,我创建了一个 SuperDuper::Configuration 模块。在引擎的 config/routes.rb 中,我根据配置定义路由。定义辅助方法以有条件地呈现您的各种链接/表单/按钮。

    通过覆盖配置模块的设置,您可以控制在应用程序启动时如何或是否包含引擎的路由。

    module SuperDuper
      module Configuration
        def self.documents=(bool)
          @documents = bool
        end
    
        def self.documents
          @documents.nil? ? true : @documents
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      相关资源
      最近更新 更多