2012-09-10 59 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