2016-04-18 7 views
3

Ich versuche, die Ausgabe von Params in der Datenbank zu speichern (ich spare dies: params.inspect) - hier ist ein Beispiel für die Zeichenfolge, die gespeichert werden soll ist:Rails: "Mysql2 :: Fehler: Falscher String-Wert:" beim Versuch, "params.inspect" zu speichern

> {\"utf8\"=>\"✓\", \"_method\"=>\"patch\", \"authenticity_token\"=>\"fpQC8FY8+qztD41jjcFSJRars539KRshw/vczmmJd9Q=\", 
> \"car\"=>{\"role_type\"=>\"1\", \"admin_id\"=>\"67\", 
> \"branch_id\"=>\"1\", \"template_id\"=>\"21\", \"cost\"=>\"0.00\", 
> \"carrier_additional_cost\"=>\"0.00\", ... 

Zuerst habe ich versucht, die params wie folgt zu speichern:

all_params  = params.except(:controller, :action).inspect 

aber es hat nicht funktioniert. Also:

all_params  = params.except(:controller, :action).inspect.encode("iso-8859-1") 

Auch dies:

all_params  = params.except(:controller, :action).inspect.encode("iso-8859-1").force_encoding("utf-8") 

gibt den gleichen Fehler.

Wie wird die Ausgabe von params.inspect richtig gespeichert? Die Spalte, in der ich versuche, diese Daten zu speichern, lautet text, nicht string.

Danke

+0

Was ist der unerwartete Zeichenfolgenwert? Ist es "✓"? –

+0

Ich glaube schon - alles andere sieht wie ein "normaler" Charakter aus ... – user984621

+0

Was gibt dir "params.to_s.encoding"? –

Antwort

0

Try params statt params.inspect verwenden.

Ein Beispiel für die Ausgabe von params ist
{"controller"=>"users", "action"=>"show", "id"=>"1"}
, die ein Hash ist was ich denke, ist das, was Sie in Ihrer Datenbank gespeichert werden sollen.

+0

Danke Jeffrey, aber immer noch mit diesem Fehler konfrontiert. – user984621

Verwandte Themen