2017-08-04 2 views
0

Ich verwende Rails und haben eine Variable aus dem Dataset, das mehrere Zeichenfolge Einträge durch Semikolon getrennt hat. Ich möchte diese in einer Tabelle veröffentlichen und möchte auch Instanzen, in denen sie leer sind, ignorieren.Split und Veröffentlichen Zeichenfolge mit Trennzeichen

Meine Datenbank könnte wie folgt aussehen:

state: TX;PA;NJ;NY 

Ich mag würde diese in einer Tabelle veröffentlichen, so sieht es aus wie folgt:

enter image description here

Mein Modell ist Berater und das Attribut ist Staat.

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

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

Ich versuchte split Funktion, aber mit bin keinen Erfolg. Danke für Ihre Hilfe.

+0

Sind ';' getrennt oder ',' getrennt 'TX; PA; NJ, NY'? –

+0

sie sind durch ';' – DCRubyHound

Antwort

2

Sie #split Methode dafür verwenden können. Etwas wie:

+0

das funktioniert, danke! – DCRubyHound

+0

Gut zu wissen, dass. –

1

können Sie split verwenden, indem ; und lehnen die leer diejenigen vorbei, wie:

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

dank @sebastian getrennt, ich bekomme 'undefined Methode für Nil: NilClass' Fehler. Ich weiß, dass "Berater" gültig ist, weil ich Attribute auflisten kann, ohne die "Split" -Funktion zu verwenden. – DCRubyHound

+0

'reject!' Gibt 'nil' zurück, wenn kein leerer Wert im Array vorhanden ist. Zum Beispiel wird "['test']. Reject! (&: Leer?)' '' Nil' zurückgeben und 'nil.each' wird' undefined method für 'nil: NilClass' Fehler geben. Sie können stattdessen 'reject' verwenden. –

+0

Ja, aber "TX; PA; NJ; NY;;". Split (';') 'wird. '# => [" TX "," PA "," NJ "," NY "," "]' –

Verwandte Themen