我试图用一个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。我如何删除它?
答案 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_