2016-04-18 10 views
3

私はデータベースにparamsの出力を保存しようとしています(私はこれを保存しています:params.inspect)。保存されることになっています文字列:Rails: "Mysql2 :: Error:不正な文字列値:" params.inspectを保存しようとしたとき

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

それがうまくいかなかった:

> {\"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\", ... 

まず、私はこのようなのparamsを保存しようとしました。だから、:

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

また、この:

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

は同じエラーを返します。

params.inspectの出力を正しく保存するにはどうすればよいですか?

このデータを保存しようとしている列は、ではなく、stringです。

+0

予期しない文字列の値は何ですか?それは '✓'ですか? –

+0

私はそう信じています - 他のものはすべて "普通の"文字のように見えます... – user984621

+0

'params.to_s.encoding'はあなたに何を与えるのですか? –

答えて

0

params代わりのparams.inspectを使用してみてください、ありがとうございました。 params

サンプル出力は、私はあなたのデータベースに保存したいものだと思いハッシュある
{"controller"=>"users", "action"=>"show", "id"=>"1"}
です。

+0

Jeffreyに感謝します。でも、まだこのエラーに直面しています。 – user984621

関連する問題