【问题标题】:Just upgraded from 3.0.7 to 3.2.8; Partials not displaying刚从3.0.7升级到3.2.8;部分不显示
【发布时间】:2012-09-14 18:49:31
【问题描述】:

我刚刚从 3.0.7 升级到 3.2.8 并且没有显示一堆部分。但是,它们正在被渲染(根据日志),并且没有给出错误消息。这是一个(简化的)示例:

layouts/application.html.haml

(snip)
%body
  = yield :header
  = yield
(snip)

home/index.html.haml

- content_for :head do
  (snip)

- content_for :header do
  (snip)

= render(:partial => "home_content", :layout => "shared/layouts/content_columns")

shared/layouts/_content_columns.html.haml

%div
  .content
    = yield :content_column
  .sidebar
    = yield :sidebar

home/_home_content.html.haml

- content_for :content_column do
  = render_external("twitter")
  = render(:partial => "seo_content")

- content_for :sidebar do
  = render(:partial => "featured")
  = render(:partial => "testimonials")
  = render(:partial => "social")

显示:head:header 的所有内容,而:content_column:sidebar 的内容均不显示。我认为使用布局渲染局部会发生一些变化,但是一些快速搜索并没有产生任何明显的结果。

谢谢!

更新

这是来自日志的渲染顺序(包括我在shared/layouts/_content_columns.html.haml 中包含的调试语句):

Rendered home/_twitter.html.haml (1.4ms)
Rendered home/_seo_content.html.haml (0.9ms)
Rendered home/_featured.html.haml (2.2ms)
Rendered home/_testimonials.html.haml (2.1ms)
Rendered home/_social.html.haml (213.8ms)
DEBUG: String="Rendering shared/layouts/content_columns"
DEBUG: String="At '= yield :content_column'"
DEBUG: String="At '= yield :sidebar'"
Rendered home/_home_content.html.haml (256.9ms)
Rendered home/index.html.haml within layouts/application (300.6ms)

如您所见,部分是在home_contentindex 之前渲染的,因此它们的内容应该被layouts/application 中的= yield 抓取

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2


    【解决方案1】:

    答案是改shared/layouts/_content_columns.html.haml

    %div
      .content
        = content_for :content_column
      .sidebar
        = content_for :sidebar
    

    感谢这个 SO 问题:content_for vs yield in partials

    【讨论】:

      猜你喜欢
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 2017-01-01
      • 2016-08-15
      • 1970-01-01
      相关资源
      最近更新 更多