2017-08-04 105 views
0

我使用的是使用rails,並且有一個變量來自數據集中有多個用分號分隔的字符串條目。我想將這些內容發佈在表格中,並且還希望忽略它們爲空的情況。拆分併發布帶分隔符的字符串

我的數據庫可能是這樣的:

state: TX;PA;NJ;NY 

我想在一個表中公佈這些,所以它看起來如下:

enter image description here

我的模型是顧問和屬性是國家。

<table class="table table-striped table-bordered"> 
    <thead> 
     <tr> 
     <th>State</th> 
     </tr> 
    </thead> 

    <tbody> 
     <tr> 
      <td><%= adviser.state %></td> 
     </tr> 
    </tbody> 
    </table> 
</div> 

我試過使用split函數,但是沒有成功。謝謝你的幫助。

+0

將';'分開還是','分開'TX; PA; NJ,NY'? –

+0

它們被';'分隔;' – DCRubyHound

回答

2

可以使用#split方法爲。例如:

<tbody> 
    <tr> 
    <% adviser.state.split(';').each do |state| %> 
     <% next if state.blank? %> 
     <td><%= state %></td> 
    <% end %> 
    </tr> 
</tbody> 
+0

這很有用,謝謝! – DCRubyHound

+0

很高興知道。 –

1

你可以通過;使用split和拒絕空白的,如:

<% adviser.state.split(';').reject(&:blank?).each do |stat| %> 
    <%= stat %> 
<% end %> 
+0

謝謝@sebastian,我得到了'nil:NilClass'的錯誤。我知道'顧問'是有效的,因爲我可以列出屬性而不使用'split'函數。 – DCRubyHound

+0

如果數組中沒有空值,'reject!'將返回'nil'。例如,'['test']。reject!(&:blank?)'將返回nil',並且nil.each'將爲每個nil:NilClass'錯誤提供未定義的方法。您可以使用'reject'代替。 –

+0

是的,但是「TX; PA; NJ; NY;;」。split(';')'will。 '#=> [「TX」,「PA」,「NJ」,「NY」,「」]' –