1

我有这个 HAML 页面:

-content_for :primary_content do

  Hmmm
  %strong{:class => "code", :id => "message"} Hello Alex!

  .container-fluid
    .row-fluid
      .span1 Hello 1
      .span4 Hello 4
      .span4 Hello 4 again
      .span3 Hello 3

  %strong{:class => "code"} End of page!

  .container-fluid
    .row-fluid
      .span9 My Disclosures o ye!
      .span3 This will be the side area

      // Ok....what is in home?
      // The two divs....

  -content_for :primary_content do
    -if signed_in?
      // =render "sidebar/common/primary_navigation"
      // If signed in, show the options for
      // 1) Logout | My Profile
      // 2) Create disclosure | show disclosures
      Signed in
    -else
      // =render "devise/sessions/form"
      NOT Signed in

出于某种原因,它呈现Not signed in Hmmm Hello Alex!在顶行,然后是它下面的所有其他内容。

我很困惑,因为“未登录”位于页面底部,而“hmm Hello Alex”位于顶部。但由于某种原因,它会一起呈现在屏幕上。知道为什么吗?

谢谢!

4

1 回答 1

2

首先我想指出你似乎有一个嵌套的 content_for,这可能是一个问题。

其次,我建议分离两个 content_for 块并专门为登录区域创建另一个块。就像是

- content_for :login do
  -if signed_in?
    // =render "sidebar/common/primary_navigation"
    // If signed in, show the options for
    // 1) Logout | My Profile
    // 2) Create disclosure | show disclosures
    Signed in
  -else
    // =render "devise/sessions/form"
    NOT Signed in

然后放

yield :login

之后某处

yield :primary_content

分离关注点并使其没有任何内容踩到其他人的脚趾。

于 2012-04-20T16:14:49.353 回答