2016-08-02 3 views
0

Я создал файл index.html.erb и имел в нем код ruby ​​/ html, и файл работает на сервере webrick на localhost без использования рельсов.Передача переменной Ruby JSON переменной javascript

У меня есть глобальная переменная JSON в моем коде Ruby. Это выглядит следующим образом:

@ruby_side_json = [{ :name => 'Will', :age => 23 },{ :name => 'John', :age => 30 }].to_json

Я хочу, чтобы быть назначен мой переменная JavaScript, которая проживает в скрипте

не удастся, написав: var javascript_side_json = <%= @ruby_side_json %>

Как я могу добиться этого?

+0

Какая ошибка у вас возникла? – gcampbell

+0

Что вы видите в консоли браузера при вводе 'javascript_side_json'? –

+0

[Object {: name => 'Will',: age => 23}, Object {: name => 'John',: age => 30}] – Amit

ответ

1

Если вы используете теги rails внутри тега скрипта, его следует указывать с одинарными или двойными кавычками.

Изменить код, как указано ниже:

вар javascript_side_json = '<% = @rails_side_json%>';

0

В окружении, которое вы описываете, единственный способ, которым я могу видеть, что это работает, - это создать тег <script> непосредственно в html и отобразить его вверху, прежде чем любые теги javascript потребуют.

так:

<head> 
    <script> 
    var javascript_side_json = <%= @rails_side_json %> 
    </script> 
</head> 

Это говорит, что это своего рода уродливое, но он должен работать; если вы не разместите его перед тегами JS, тогда данных не будет, когда вы попытаетесь выполнить некоторые JS, которые в нем нуждаются.

0

Предполагая, что вы не используете Rails, а JSON генерируется правильно с вашей реализацией to_json. Затем попробуйте сделать это:

<script>  
    var javascript_side_json = <%= @rails_side_json %>; 
</script>