【问题标题】:RefineryCMS - show.html.erb can't be overriddenRefineryCMS - show.html.erb 不能被覆盖
【发布时间】:2011-09-20 14:05:26
【问题描述】:

我正在运行refinerycms 1.0.8 和rails 3.0.10。 我在 app/views/pages/show.html.erb 中有以下代码

<div id="startpageheader">
  <%= raw @page.content_for(:startpageheader) %>
</div>
<section id='body_content'>
  <%=raw @page.content_for(:body) %>
</section>

如果我在开发模式下运行这个本地,我会得到以下(期望的)输出:

<section id='page'>
  <div id="startpageheader">
    <p>...</p>
  </div>
  <section id='body_content'>
    <p>...</p>
  </section>
</section>

但是一旦我在生产模式下启动它,我就会得到以下信息:

<section id='page'>
  <section id='body_content' class='no_body_content_right'>
    <h1 id='body_content_title'>Home</h1>
    <section id='body_content_left'><div class='inner'><p>...</p></div></section>
    <section id='startpageheader'><div class='inner'><p>...</p></div></section>
  </section>
</section>

因此,显示了页面部分,但视图错误。我试图在生产日志中寻找这个,但我最终无处可去。 有人知道这里出了什么问题吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 refinerycms


    【解决方案1】:

    我发现了问题,当然,这是我自己的错。无论出于何种原因,我设法以某种方式从页面菜单中删除了第一页(主页)。所以,当时,我创建了一个新的,它不是实际的主页,而只是一个普通的页面。 当我修改页面的显示视图show.html.erb 时,当然会显示更改。但是在生产中,原始主页没有被删除,因此show.html.erb 的更改没有出现,因为第一个视图响应home.html.erb。 感谢所有试图帮助我的人,并为这个愚蠢的错误感到抱歉。

    【讨论】:

      【解决方案2】:

      在我看来,您的生产数据库中没有填充数据。

      我现在没有炼油厂的来源,但是如果右侧面板没有任何数据,它会提供“no_body_content_right”。这在以后对其进行样式设置时非常有用。

      在管理员中检查您的页面,如果缺少数据,请填充数据,如果这不起作用,请告诉我。

      【讨论】:

      • 也感谢您的回答,但这不是问题所在。我的数据库已迁移(用于生产)并已填充。 :body_content_right 应该是空的。 Body 和 startpageheader 的内容也都出现了,只是位置不对。显然,Refinery 使用标准的 show.html.erb 并忽略了我的覆盖文件。
      • @klaffenboeck 我已经覆盖了他们拥有的几乎所有视图(对于cyberstride.net),并且我没有遇到没有获取正确视图的问题。
      • 再次感谢。请问真的退出了,你用的是哪个版本的rails和refinery?非常感谢。
      • @klaffenboeck 我真的不记得了,不过我相信 3.1。
      • @klaffenboeck 检查这个文件(你可能想要覆盖它),它可能会导致你的问题:github.com/resolve/refinerycms/blob/master/core/app/views/…
      【解决方案3】:

      您需要迁移生产数据库。

      如果你查看shared/_content_page.html.erb,你会看到你得到&lt;section id='body_content' class='no_body_content_right'&gt; ..etc。当您不通过要让步的部分时。

      希望这会有所帮助。

      【讨论】:

      • 谢谢,但数据库已在生产中迁移和填充。我没有考虑检查 shared/_content_page.html.erb 的来源,所以感谢您的提示。尽管如此,这是完全正确的,因为 :side_body 在我的应用程序中不存在(我删除了它),因此没有什么可以加载 :body_content_right
      • 进入您的 /refinery 进入设置,进入“默认页面部件”并删除 --sidebody,因为这可能是导致您出现问题的原因。它正在尝试呈现您不再需要的页面部分。
      • 我已经删除了那部分。关键是,根本不应该加载 shared/_content_page.html.erb,因为我用我覆盖了 show.html.erb original content "/shared/content_page" %>在我的帖子中提到。
      猜你喜欢
      • 2019-12-04
      • 2014-10-03
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多