0

user.rb ファイルで User.guided フィールドをシリアル化するように設定しています。

serialize :guided

DB では、値は次のように格納されています。

--- "{\"step1\"=>\"true\", \"step2\"=>\"false\"}"

したがって、私のレールビューでは、次のように値を JS に出力します。

<script>
var guided = <%= current_user.guided.to_json.html_safe %>;
</script>

次に、js コンソールで、ガイド付き出力:

"{"step1"=>"true", "step2"=>"false"}"

問題は、個々の値にアクセスできないことですか? どうやってそれをしますか?

guided.step1エラーとしてundefined

ありがとう

4

1 に答える 1

1

to_jsonJSON 文字列を返します。実際のオブジェクトを取得するには、クライアントでその文字列を解析する必要があります。

例えば:

var guided = JSON.parse(<%= current_user.guided.to_json.html_safe %>);

また、コードは実際の JSON 文字列を返すのではなく、Ruby ハッシュ構文の文字列を返します。あなたが私たちに示すよりも、おそらくもっと多くのことが起こっています。このコードは機能します:

obj = {"step1"=>"true", "step2"=>"false"}
obj # => {"step1"=>"true", "step2"=>"false"}
obj.to_json # => "{\"step1\":\"true\",\"step2\":\"false\"}"
于 2012-04-23T01:55:54.290 に答える