我的.html.erb文件中的代码如下所示:
<% if !current_user %>
<%= link_to "Sign in (or up)", '/login', :class => "login_button round" %>
<% else %>
<%= link_to "Sign out", '/logout', :class => "login_button round" %>
<% end if %>
但我认为将条件逻辑粘贴到帮助器中会很好,因此清理.html.erb文件。我现在有以下,但它不起作用。我是.html.erb:
<%= sign_in_out_button %>
在帮助者中:
def sign_in_out_button
out = ''
if current_user
out << link_to('Sign out', '/logout', :class => 'login_button round')
else
out << link_to('Sign in (or up)', '/login', :class => 'login_button round')
end
end
在检查浏览器源代码时,我所得到的正是我正在寻找的,但是被转义以便显示,而不是被浏览器解释为代码。知道如何解决这个问题吗?
答案 0 :(得分:1)
在rails 3中,输出代码默认是转义的。你可以这样做:
def sign_in_out_button
out = ''
if current_user
out << link_to('Sign out', '/logout', :class => 'login_button round')
else
out << link_to('Sign in (or up)', '/login', :class => 'login_button round')
end
out.html_safe
end