2012-04-20 6 views
1

の差分部分にレンダリングされているにもかかわらず、私はこのHAMLページ持っていない理由:それは一番上の行にNot signed in Hmmm Hello Alex!をレンダリングするいくつかの理由HAML - 私の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 

をし、その下にあるすべてのもの。

"サインインしていない"がページの下部にあり、 "hmm Hello Alex"が上にあるので、私は混乱します。しかし何らかの理由で、画面上に一緒にレンダリングされます。どんな考え?

ありがとう!

答えて

2

まず、あなたは入れ子にされたcontent_forを持っているようですが、これは問題かもしれません。

第2に、2つの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 :primary_content 

が懸念を分離し、あなたが他の人のつま先を踏ん任意のコンテンツを持っていないので、それを作った後

どこか
yield :login 

を置きます。