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

Redmine 5(Rails 6.1)插件模板渲染异常:输出原始HTML

解决Redmine 5中that_attachments_limit插件视图循环加载/原始文本输出问题

针对Redmine 5(基于Rails 6.1)中插件视图渲染的异常问题,以下是两种可行的解决方案:

方案1:明确指定ERB处理器渲染主应用视图

原file参数渲染输出原始文本,是因为Rails 6.1默认未自动解析ERB模板。修改插件内app/views/attachments/_form.html.erb的代码为:

<%= render file: Rails.root.join('app', 'views', 'attachments', '_form.html.erb'), 
           locals: locals, 
           handlers: [:erb], 
           formats: [:html] %>

通过handlers: [:erb]强制Rails解析ERB语法,避免直接输出文件原始内容。

方案2:临时切换视图路径避免循环加载

使用template参数陷入循环,是因为Rails优先加载插件同名视图。可以临时切换视图路径到主应用目录,渲染完成后再恢复:

<% # 保存当前视图路径集合 %>
<% original_view_paths = lookup_context.view_paths %>
<% # 临时将视图路径设置为主应用目录 %>
<% lookup_context.view_paths = ActionView::PathSet.new([Rails.root.join('app', 'views')]) %>
<% # 渲染主应用的attachments/_form视图 %>
<%= render template: "attachments/_form", locals: locals %>
<% # 恢复原视图路径 %>
<% lookup_context.view_paths = original_view_paths %>

这种方式确保渲染的是Redmine主应用的原始视图,而非插件自身的同名视图,彻底解决循环加载问题。

内容的提问来源于stack exchange,提问作者Jan Catrysse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:03:12