2012-09-10 55 views
0

好,愚蠢的新手问题:只有在需要时才如何进行换行符?如何用条件运算符添加换行符

我创建一个基本的地址上市只想包括行地址的,如果它不为空。我如何保持空白行不打印?我尝试过使用break和new line标签,并尝试使用两种类型的puts和引号并转义斜杠,但似乎无法正确显示地址。

有没有办法有地址的每一行上打印自己的路线或者干脆省略行,如果没有信息穿上它?

下面的代码的当前版本:

<p><strong>Main Address</strong></p> 
    <p><%= if @vendor.address1 || null 
      @vendor.address1 #need a break here 
      end %> 
     <%= if @vendor.address2 || null 
      @vendor.address2 #need a break here 
      end %> 
     <%= @vendor.city %>, <%= @vendor.state %> <%= @vendor.zip %></p> 
+0

你的意思是'
'标记和换行符? –

+0

是的,那个。你是如何展示的?当我输入它时,它实际上是一个换行符。 –

+0

要在评论或答案中嵌入代码,请将其置于反引号''中(可能是您的1键的左侧)在问题框中,您可以突出显示ctl-k。 –

回答

2

这是我会怎么做:

<p> 
    <strong>Main Address</strong> 
</p> 
<p> 
<% unless @vendor.address1.blank? %> 
    <%= @vendor.address1 %><br> 
<% end %> 
<% unless @vendor.address2.blank? %> 
    <%= @vendor.address2 %><br> 
<% end %> 
    <%= @vendor.city %>, <%= @vendor.state %> <%= @vendor.zip %> 
</p> 

顺便说一句:在代码中|| null是无效的红宝石。 null不存在,应该是nil。但即使你使用了nil,你的代码也没有达到你期望的效果。对于这些事情,你最好使用blank?

+0

非常感谢!我想知道空白吗?或存在?方法会更好。然而,我现在得到某种语法错误:“语法错误,意外')',期待keyword_then或';'或'\ n'“ ... nless @ vendor.address2.blank? );?@ output_buffer.safe_concat(”
我会继续做这个工作,要弄清楚什么我做错了 –

+0

有在我贴出答案的一个小错误对不起你能与上述 – Mischa

+0

代码再试一次超级棒!非常感谢您的帮助! –

-1
<p><strong>Main Address</strong></p> 
     <p><%= @vendor.address1%><%= <br/> if @vendor.address1.blank? %> 
      <%= @vendor.address2%><%= <br/> if @vendor.address2.blank? %> 
      <%= @vendor.city %>, <%= @vendor.state %> <%= @vendor.zip %></p> 
+0

这确实给出了期望的结果。请修复您的答案。我个人认为它不是干净的,因为*必须*提供'else'子句,其中不需要一个 – Mischa

+0

@Mischa:更新了答案 – AnkitG

+0

这不再是三元运算符了'
'必须用引号括起来,它应该是'unless'而不是'if'。 – Mischa