Rails app产生额外的输出

时间:2011-02-10 12:01:43

标签: ruby-on-rails session haml

我试图用一个rails应用程序来学习正确的做事方式,并且我已经有了一个很好的开始,但现在这件事让我烦恼。它漂亮的化妆品,但它会让我失去理智。

我已经制作了这个会话控制器和会话助手来处理登录和退出,我相信这很好(还没有实际测试过),但是当我想使用如果!signed_in ?,我得到在我的视图中使用额外的输出(我使用haml),下面是我认为参与生成这个额外输出的所有代码。

sessions_helper.rb:

def get_current_user
  @current_user ||= false
end

def signed_in?
   !get_current_user.nil?
end

partial:_menu.html.haml(即时通讯还在学习看看ruby-isk)

%nav
  #userbox
    =if signed_in?
      =link_to 'Create User', :signup
      |
      =link_to 'Log In', :signin
    =if !signed_in?
      =link_to "My profile", :root
      |
      =link_to 'Log Out', :signout
  %ul
    %li= link_to 'About', :about
    %li= link_to 'Concept', :concept
    %li= link_to 'Home', :root

最终生成以下html:

<nav> 
  <div id='userbox'> 
    <a href="/signup">Create User</a> 
    |
    <a href="/signin">Log In</a> 
  2

  </div> 
  <ul> 
    <li><a href="/about">About</a></li> 
    <li><a href="/concept">Concept</a></li> 
    <li><a href="/">Home</a></li> 
  </ul> 
</nav> 

这里的问题是生成的额外数字2。我如何删除它?

1 个答案:

答案 0 :(得分:1)

尝试使用 - 而不是在ruby代码中的=不呈现代码的代码:

%nav
  #userbox
    - if signed_in?
      =link_to 'Create User', :signup
      |
      =link_to 'Log In', :signin
    - if !signed_in?
      =link_to "My profile", :root
      |
      =link_to 'Log Out', :signout
  %ul
    %li= link_to 'About', :about
    %li= link_to 'Concept', :concept
    %li= link_to 'Home', :root

请参阅此处运行ruby代码的文档:http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html#running_ruby_