Rails已呈现但未出现

时间:2018-10-10 12:44:18

标签: ruby-on-rails ruby

请原谅我的英语不完美。

我知道关于这种类型的问题已经有不同的话题,但是没有一个能为我带来有效的解决方案。

我有一个侧边栏,并且在日志中,我可以看到它已渲染,但是它没有出现在视图中或当我检查元素时。

我在代码中没有看到任何错误,但也许您会看到一些东西。

_sidebar.slim:

= content_for(:leftbar) do
  .leftbar-nav
    .leftbar-content
      .leftbar-block
        = render('shared/clients_ratings')
      .leftbar-block
        = render('themes/list')
      .leftbar-block
        = render('shared/social_share')
      .cta-block
        = widget_content('sidebar-list-public-orders')

以_orders.slim呈现:

- unless identity_signed_in?
  = render 'shared/cta_blocks'

- if @orders.size > 0
    = render @orders
    = paginate @orders
- else
  p
    | There are no orders.

= render('themes/sidebar')

在index.slim中呈现:

- content_for(:full_width) do
  .neo-page-header
    .container
      .neo-page-header-title
        h1 Title

  .container
    = render('orders/orders')

最后,我的应用程序中有一个content_for?(:leftbar)。slim:

doctype html
html lang="fr"
  = render "layouts/head"
  body class= "#{yield(:app_class)}"
    #wrap
      = render 'shared/flash_messages'
      = render 'shared/admin_navbar'
      - if identity_signed_in?
        = render 'shared/navbar'
      - else
        = render 'shared/navbar_guest'
      = render 'shared/banner' unless hide_banner? or identity_signed_in?

      = render('shared/confirmation_notice')

      - if content_for(:full_width)
        = yield(:full_width)

      - elsif content_for?(:sidebar)
        .container
          .row
            .col-lg-9.col-md-9
              = yield
            .col-lg-3.col-md-3
              = yield :sidebar

      - elsif content_for?(:leftbar)
        .container
          .row
            .col-lg-3.col-md-3
              = yield :leftbar
            .col-lg-9.col-md-9.main-content
              = yield
      - else
        .container
          = yield

2 个答案:

答案 0 :(得分:1)

在您的application.slim中,您有- if content_for(:full_width)。这可能会返回一些真实值,因此将不会执行任何其他elsif。我相信应该是- if content_for?(:full_width)

答案 1 :(得分:0)

应为= yield :leftbar