我正在使用一个有点复杂且不是由我设计的应用程序。由于它使用了很多部分,如果每次呈现新的 erb/rhtml 文件时我都可以自动添加一个 html 模板,那将非常有帮助。
所以例如,如果代码有这个:
<%= render(:partial => 'personal_details', :object => @auser) %>
输出 html 添加如下内容:
<!-- Rendering: views/users/_personal_details.rhtml called from other_file.rhtml -->
如何实现呢?
最佳答案
首先,您是否已经在使用 xray-rails可视化你的部分?这是一个非常有用的工具。
如果您需要更多的东西,请查看一些指针的 xray-rails 源代码。基本上你需要做的是猴子补丁ActionView::Template#render
如 shown here .
总结一下:
ActionView::Template.class_eval do
def render_with_prepend_comment(*args, &block)
# Defer to original implementation to do the actual render
source = render_without_prepend_comment(*args, &block)
# Then augment it as desired
"<!-- prepended comment -->\n" + source
end
alias_method_chain :render, :prepend_comment
end
还有一点。看看 xray-rails 是如何做的 its augmentation .
关于ruby-on-rails - rails, make render 添加正在渲染的文件名的 HTML 注释以供开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29350958/