2016-05-24 1 views
2

Ist es möglich, eine ganze Zahl und eine Zeichenfolge innerhalb eines Modells verketten? Etwas wie folgt aus:Rails => verketten Integer und String innerhalb Modell

percent = 50 
string = (percent + "%") 

Der Versuch, dieses Ich bin ein Typ Fehler bekommen:

TypeError (String can't be coerced into Fixnum): app/models/game.rb:124:in `+'

Antwort

2

Sie können es tun, indem Sie verschiedene Möglichkeiten:

string = "#{number}%" # or number.to_s + "%" 
=> "50%" 

oder mit number_to_percentage Rails Helfer (in Ansichten):

string = number_to_percentage(number) 
+0

number_to_percentage scheint nicht zu funktionieren: NoMethodError (nicht definierte Methode 'number_to_percentage‘ für # ): – Lars

+0

@ Lars, siehe meine Antwort: nur in Aussicht, da es ist ein Helfer. Oder fügen Sie Helfer hinzu: 'Schließen Sie ActionView :: Helpers' in Modellen ein. – Ilya

+0

Ok. Ich habe diesen Hinweis verpasst. string = "# {number}%" funktioniert in meinem Modell – Lars

1
percent = 50 
percentstring = percent.to_s 
string = percentstring + "%" 

.to_s = string

+0

Gemäß [Ruby style guide] (https://github.com/bbatsov/ruby-style-guide#string-interpolation) besser die String-Interpolation anstelle der Verkettung verwenden. – Ilya

+0

fragte er nach Verkettung: P – Boltz0r

+0

Das funktioniert auch. Vielen Dank. – Lars