我正在做Michael Hartl教程并遇到了一个涉及游戏的部分。当我在这个部分时,一个经验丰富的' ruby dude告诉我,我可以摆脱提供功能,而是添加@title
以使其更容易。所以在线上(因为我目前正在工作,我的头顶)是:
<%= "#{@title} | " Default title %>
在他建立的网站上,他告诉我,如果没有@title
,则会从Home | Default title
转到Default title
。但是当我删除页面的@title
时,它仍然会显示| Default title
。
如果没有标题,我如何摆脱|
?
我尝试使用if / else方法做一个帮手,但由于我在rails上很新,我想我要么宰了它,要么以错误的方式处理这个过程。
答案 0 :(得分:0)
在这里&#39>如何。但我认为这样做是个坏主意。 provide
是一种更清晰的标题设置方式。那么为什么不坚持下去呢?你应该将逻辑移离视图,而不是移入视图中。
<title>
<% if @title %>
<%= @title %>
<% else %>
"Default Title"
<% end %>
</title>
更精简:
<title>
<%= @title || "Default Title" %>
</title>
答案 1 :(得分:0)
如果您想要Title | Default title
或Default title
,您可以执行以下操作:
<%= (@title ? "#{@title} | " : "") + "Default title" %>
如果您想要Title
或Default title
,您可以执行以下操作:
<%= @title || "Default title" %>
如果@title
可以是空字符串(但您希望将空字符串视为nil
),请将@title
替换为@title.presence
:
<%= (@title.present? ? "#{@title} | " : "") + "Default title" %>
或者:
<%= @title.presence || "Default title" %>