несколькими способами, которые я делал в прошлом
, помещать данные в скрытые поля, получать доступ к данным в js / coffee
# single value
<%= hidden_field_tag "foo_name", @foo.name, { :id => "foo-name" } %>
$('#foo-name').val();
# when the 'value' has multiple attributes
<%= hidden_field_tag "foo", @foo.id, { :id => "foo", "data-first-name" => @foo.first_name, "data-last-name" => @foo.last_name } %>
$foo = $('#foo')
console.log $foo.val()
console.log $foo.data("firstName")
console.log $foo.data("lastName")
другой вариант: загружать данные в jsструктура данных в erb, доступ к ней из js / coffee
<% content_for(:head) do %>
<script>
window.App = window.App || {};
window.App.Data = window.App.Data || {};
window.App.Data.fooList = [
<% @list.each do |foo| %>
<%= foo.to_json %>,
<% end %>
];
</script>
<% end %>
# coffee
for foo in window.App.Data.fooList
console.log "#{foo.id}, #{foo.first_name} #{foo.last_name}"
Я не большой поклонник создания данных javascript из ruby в erb, как это, что-то в этом просто кажется неправильным - хотя это может быть эффективным
и другой вариант: совершить ajax-вызов и получить данные по запросу с сервера
Меня также интересуют другие идеи и подходы