2017-03-03 2 views
0

ich zu verketten versuche die „:“ mit dem Wert unterschreiben, die innerhalb einer Variable ist, aber wenn es zeigt mir die folgenden Fehler zu verketten versuchen: schlecht URI (nicht URI?): 208Verkettung von Werten

Dies ist der Code, den ich in den Application zu verketten versuchen:

def set_database 

    if usuario_signed_in? 
     empresa = ':'+(current_usuario.empresa_id) 
     ActiveRecord::Base.establish_connection(empresa) 

    end 

Mit dem vorherigen Code nicht funktioniert, aber die Variable ersetzen wie folgt zeigt nicht den Fehler:

if usuario_signed_in? 
    empresa = :'208' 
    ActiveRecord::Base.establish_connection(empresa) 
end 

Antwort

1

ja das sind zwei verschiedene Dinge

empresa = ':'+(current_usuario.empresa_id) 

wahrscheinlich in einen String oder einen Fehler beheben würde, während

empresa = :'208' 

ein Symbol.

Ich glaube, Sie dieses Problem, indem nur das Umwandeln Ihrer empresa zu einem Symbol lösen können, entweder durch den Aufruf

current_usuario.empresa_id.to_sym 

ODER

current_usuario.empresa_id.to_s.to_sym 
+0

meine Vermutung ist, dass Sie die richtigen Ergebnisse mit dem, wenn es darum zweiter Teil Ihres Codes – oreoluwa

+0

Vielen Dank, das hat mit Ihrer zweiten Option perfekt funktioniert. Aber ich kann nicht verstehen, wie ist: '208' ein Symbol? Und setzen Sie einfach empresa = (current_usuario.empresa_id) .to_s.to_sym müssen nicht ':' am Anfang setzen – LuisC