You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Rails框架默认生成的视图目录路径

修改Rails控制器视图的默认生成路径

要让rails g controller foo index生成的视图文件存到app/views/controllers/foo而非默认的app/views/foo,可以通过重写Rails的控制器生成器实现:

  • 在项目的config/initializers目录下创建新文件,比如命名为controller_generator.rb
  • 将以下代码写入该文件:
Rails.application.config.generators do |g|
  g.controller do |controller|
    controller.view_path = proc { |controller_name| "app/views/controllers/#{controller_name}" }
  end
end

这段代码会覆盖控制器生成器默认的视图路径计算逻辑,把视图根目录改为app/views/controllers,再拼接控制器名称作为子目录。

  • 保存文件后,重新运行rails g controller foo index,视图文件就会生成在app/views/controllers/foo/index.html.erb路径下。

额外注意:修改生成路径后,需要让Rails能找到新路径下的视图,可在同一个初始化文件中添加配置:

ActionController::Base.prepend_view_path "app/views/controllers"

这样控制器渲染视图时,会优先查找app/views/controllers下的对应目录,兼容原有视图查找逻辑。

内容的提问来源于stack exchange,提问作者Michael Irwin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:12:04