如何在Rails 7脚手架中修改默认路由生成器?
自定义Rails脚手架的路由生成行为
不用修改Rails源码包内的文件,直接在项目里创建自定义生成器就能覆盖默认行为,步骤如下:
- 在项目根目录下创建路径
lib/generators/rails/resource_route/,然后新建文件resource_route_generator.rb - 将以下代码写入该文件:
require 'rails/generators/rails/resource_route/resource_route_generator' module Rails module Generators class ResourceRouteGenerator < Base def add_resource_route return if options[:actions].blank? route <<~ROUTE resources :#{plural_table_name} do collection do delete :destroy_selected end end ROUTE end end end end
- 确保Rails能加载lib目录下的代码,打开
config/application.rb,添加以下配置:
config.autoload_paths << Rails.root.join('lib') config.eager_load_paths << Rails.root.join('lib')
- 现在运行脚手架命令
rails g scaffold Post title message,routes.rb就会生成你需要的路由代码了。
内容的提问来源于stack exchange,提问作者Arthur Felipe
相关产品推荐
相关产品推荐

