Доступ к массиву рубинов в JavaScript - PullRequest
2 голосов
/ 03 февраля 2011

Я хочу получить доступ к массиву Ruby в javascript. Пожалуйста, скажите мне, как это сделать. Мой массив содержит результат запроса SQL.

  @contacts = Contact.order("contacts.position ASC")

Я пытаюсь это сделать ....

for(var i=0; i< a; i++)
    {   
        var firstnameV = "<%=Contact.order('contacts.position ASC')[i].first_name%>";
        var lastnameV = "<%=Contact.order('contacts.position ASC')[i].last_name%>";
        var emailV = "<%=Contact.order('contacts.position ASC')[i].email%>";
        var contactV = parseInt("<%=Contact.order('contacts.position ASC')[i].contact_no%>";
        var posV = parseInt("<%=Contact.order('contacts.position ASC')[i].position%>";  
        tx.executeSql('INSERT INTO contact_table (firstname, lastname, email, contact, pos)
        VALUES (firstnameV,lastnameV, emailV, contactV, posV)');
    }

Ответы [ 3 ]

4 голосов
/ 03 февраля 2011

Быстрый пример того, как вы можете отобразить значение переменной Ruby в JavaScript.Добавьте <% = yield: head%> к тегу head в views/layouts/application.html.erb.Затем в views/contacts/index.erb (или в любом другом используемом вами представлении) добавьте следующее:

<%content_for :head do %>
<script type="text/javascript">
window.onload = function() {
    alert("First contact in database is <%=Contact.order('contacts.position ASC').first.name%>")
}
</script>
<%end%>

Это предупредит первое имя контакта из вашей базы данных.

1 голос
/ 03 февраля 2011

Вы можете сделать это с помощью метода

to_json

в Ruby

или

render:json => @ contacts

0 голосов
/ 03 февраля 2011

Ruby - это язык на стороне сервера.JavaScript в основном (также на стороне сервера - например, node.js) - на стороне клиента.Если вы хотите передать значения из Ruby в JS, вы можете отобразить это значение как часть представления в тегах script или получить их через AJAX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...