我有一个页面的预览视图,我正在逐步构建一个页面。目前预览视图不起作用,它只是一个默认页面,具有默认文本和样式。我的任务是在用户通过表单提交页面元素时显示预览。这是默认视图的样子:
<h1>
Worlds coolest Product
</h1>
<h3>
Buy me and make your life 10x more worthwhile! :)
</h3>
并且此默认文本由部分显示,如下所示:
<%= render 'manage/deal_steps/deal/main_header' %>
...
我的问题是我需要用用户提交的文本替换默认文本(如果有的话),但我还需要保留默认文本以防用户不提交任何内容。这样,如果没有,我不会得到任何错误 输入。保持简单,有没有办法实现这种效果,而不会像这样使用条件逻辑乱丢视图:
<h1>
<%if retrieve_content('header')!= nil %>
<%= retrieve_content('header')%>
<%else%>
Worlds coolest Product
<% end%>
</h1>
<h3>
<%if retrieve_content('header_two')!= nil %>
<%= retrieve_content('header_two')%>
<%else%>
Buy me and make your life 10x more worthwhile! :)
<%end%>
</h3>
答案 0 :(得分:3)
这将为您提供与当前代码相同的结果:
<h1>
<%= retrieve_content('header') || 'Worlds coolest Product' %>
</h1>
<h3>
<%= retrieve_content('header_two') || 'Buy me and make your life 10x more worthwhile! :)' %>
</h3>
答案 1 :(得分:2)
修改'retrieve_content'方法以接受第二个可选属性defualt。它看起来像是:
.config
然后你可以使用它:
def retrieve_content(key, default = nil)
<Your old logic> || default
end
如果您的默认文本更复杂(包括html和东西),请接受可选块并使用捕获助手。