1

我正在学习 Spree 电子商务。虽然我以 Spree 为例提出这个问题,但我认为它在其他地方也很有用。

在 spree 中,我们有许多由管理部分定义的视图。Deface如果您知道需要覆盖哪个视图,则可以通过 gem 覆盖它们。除了Deface您可以简单地放置一个具有相同路由的物理文件之外,Rails 将使用它而不是 Gem 提供的文件。

无论哪种方式,您都需要知道需要覆盖哪个视图。

当您查看页面/视图时,您有许多较小的部分组成一整页。

我的兴趣是,有没有办法找到哪个部分是由哪个部分创建的。

例如,一些类似的东西:

<!-- /route/to/view.html.erb -->
<div id="something">
   <!-- other html -->
</div>
<!-- end of /route/to/view.html.erb -->

我希望你明白我的意思,一些制造商知道特定的 html 段是由特定的视图/部分生成的。

所以这样,我可以很容易地知道/调试。

谢谢,

感谢您提供的任何帮助。

4

3 回答 3

4

您应该尝试xray,我正在将它与 Spree 一起使用,并且效果很好。

于 2013-07-25T14:38:30.003 回答
3

xray 很好,但有点“响亮”。我在我的 rails3.2 应用程序中使用了这个片段:https ://gist.github.com/phoet/1386152

if Rails.env.development?
  module ActionView
    class PartialRenderer
      alias_method :rails_render, :render

      def render(context, options, block)
        msg = "rendering '#{options[:partial]}' with locals '#{(options[:locals] || {}).keys}'"
        "<!-- start #{msg}-->\n#{rails_render(context, options, block)}\n<!-- end #{msg}-->\n".html_safe
      end
    end
  end
end

更新

我用这个要点做了一个gempartial_usefull

于 2013-07-25T14:45:19.540 回答
0

使用这个 gem 'current_template'

它从 log/development.log 文件中获取当前模板的名称(部分)。

于 2017-09-03T06:55:42.820 回答