如何在Rails日志中显示视图文件的完整路径?
实现Rails视图渲染日志显示完整路径
要让Rails日志中显示视图文件的完整相对路径(如app/views/home/index.html.erb),可以通过重写ActionView的日志订阅器来实现,步骤如下:
- 在项目的
config/initializers目录下创建一个新文件,比如命名为action_view_log_full_path.rb - 将以下代码写入该文件:
module ActionView class LogSubscriber def render_template(event) return unless logger.info? identifier = event.payload[:identifier] full_path = "app/views/#{identifier}" message = " Rendered #{full_path}" message << " within #{event.payload[:layout]}" if event.payload[:layout] message << " (Duration: #{event.duration.round(1)}ms | Allocations: #{event.payload[:allocations]})" info(message) end def render_layout(event) return unless logger.info? identifier = event.payload[:identifier] full_path = "app/views/#{identifier}" message = " Rendered layout #{full_path} (Duration: #{event.duration.round(1)}ms | Allocations: #{event.payload[:allocations]})" info(message) end end end
- 重启Rails开发服务器
修改完成后,日志中的视图渲染信息会自动显示完整的app/views/开头路径,比如原来的Rendered home/index.html.erb会变为Rendered app/views/home/index.html.erb,布局文件的日志也会同步更新。你现有config/environments/development.rb中的日志配置无需调整,保持当前设置即可。
内容的提问来源于stack exchange,提问作者Jin Lim
相关产品推荐
相关产品推荐

