在Rails 5中将大route.rb划分为多个文件

寿一

我想将Rails 4应用程序升级到5.0.0.beta2。目前,我routes.rb通过设置文件分为多个文件,config.paths["config/routes.rb"]例如

module MyApp
  class Application < Rails::Application
    config.paths["config/routes.rb"]
      .concat(Dir[Rails.root.join("config/routes/*.rb")])
  end
end

似乎rails 5.0.0.beta2也公开了,config.paths["config/routes.rb"]但是上面的代码不起作用。如何routes.rb在Rails 5中分割文件?

玛丽安13

Rails 6.1+内置的方式可以从多个文件加载路由。

来自Rails官方文档


将非常大的路由文件分成多个小文件:

如果您在具有数千条路由的大型应用程序中工作,则单个config/routes.rb文件可能会变得繁琐且难以阅读。

Rails提供了一种routes.rb使用draw宏将巨大的单个文件分解为多个小文件的方法。

# config/routes.rb

Rails.application.routes.draw do
  get 'foo', to: 'foo#bar'

  draw(:admin) # Will load another route file located in `config/routes/admin.rb`
end

# config/routes/admin.rb

namespace :admin do
  resources :comments
end

draw(:admin)Rails.application.routes.draw块本身内部调用将尝试加载与给定参数具有相同名称的路由文件(admin.rb在这种情况下)。该文件需要位于config/routes目录或任何子目录(即config/routes/admin.rbconfig/routes/external/admin.rb)内。

您可以在admin.rb路由文件中使用普通的路由DSL ,但不要Rails.application.routes.draw像在主config/routes.rb文件中那样块将其包围


链接到相应的PR

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Flask应用划分为多个py文件?

如何将Flask应用划分为多个py文件?

将Python模块划分为多个区域

将Spring配置划分为多个项目

如何在Hadoop中高效地将大数据集划分为多个小文件

使用SQL Server将主表划分为多个表

Shell脚本:如何将文件划分为列?

将Spark DataFrame数据划分为单独的文件

根据元素值将列表划分为多个列表

将HTML范围输入轨道划分为多个部分

在Javascript中将路径划分为多个完整路径

在Python中将“字节”对象划分为多个块

如何将导出的mysql数据库文件划分为多个部分并导入数据库?

如何将Ruby on Rails 5应用程序拆分为多个文件夹?

将数据集划分为多个小型数据集,然后使用R将其写入csv文件

Rails App中application.rb文件的说明

如何将Rails模型文件拆分为多个文件(而不是关注,不是模块,而只是单独的文件)?

如何将文件的行划分为其他文件

在Rails 4中重构大的route.rb文件

在path.rb文件中的Rails路线

按小时将阵列划分为多个阵列

将原始类型的Javascript数组划分为多个部分

Gulp插件:将Vinyl文件拆分为多个文件无法正确划分数据

JS - 如何将值划分为多个输入

如何在 rails 中设置 puma.rb 文件

使用 Node JS 将 Oracle CLOB 划分为多个 JSON

在 Morris.js 中将 xKey 划分为多个属性?

将元组列表划分为多个列表的更简洁方法

bash:将大型曲目划分为子文件夹