Я пытаюсь передать массив обратно из помощника, и хотя он работает для некоторой части моего JavaScript, он не работает для другой половины.Например, вот мой помощник:
def quick_stats_bar_chart
names = []
emails = []
students = []
results = []
@exams.each do |exam|
names << trim_exam_name(exam.name)
emails << exam.exam_results
student << exam.exam_results
results << exam.exam_results
end
return [names, emails, students, results]
end
, а вот мой взгляд в javascript
<script>
$(function(){
var barData = {
labels: ["Random"],
datasets: [
{
label: "Emails",
backgroundColor: '#dedede',
pointBorderColor: "#dedede",
data: <%= quick_stats_bar_chart[1] %>
},
{
label: "Students",
backgroundColor: '#a3e1d4',
pointBackgroundColor: "#a3e1d4",
pointBorderColor: "#a3e1d4",
data: <%= quick_stats_bar_chart[2] %>
},
{
label: "Results",
backgroundColor: '#b5b8cf',
pointBackgroundColor: "#b5b8cf",
pointBorderColor: "#b5b8cf",
data: <%= quick_stats_bar_chart[3] %>
}
]
};
var barOptions = {
responsive: true
};
var ctx2 = document.getElementById("participationChart1").getContext("2d");
new Chart(ctx2, {type: 'bar', data: barData, options:barOptions});
});
Код labels: ["Random"]
- это то, где у меня возникают проблемы.Если я оставлю это так, это будет работать, но я не смогу использовать <%= quick_stats_bar_chart[0] %>
, потому что я получаю сообщение об ошибке
SyntaxError: ожидаемое выражение, получено '&'
Параметр labels
должен принимать массив, поэтому я не уверен, почему массив не передается и не анализируется правильно.
Есть мысли?Опять же, я могу вручную вставить массив, но попытка вызвать его из помощника дает мне эту ошибку.
Редактировать
Вот как выглядит quick_stats_bar_chart [0]:
[2] pry(#<#<Class:0x00007f0c99675370>>)> quick_stats_bar_chart[0]
=> ["Random.."]
[3] pry(#<#<Class:0x00007f0c99675370>>)> quick_stats_bar_chart[1]
=> [1]
Выдает ошибку [0], но не [1].
Вот вывод полной переменной:
[1] pry(#<#<Class:0x00007f0c99675370>>)> quick_stats_bar_chart
=> [["Random.."], [1], [1], [0]]
Вот с raw
[2] pry (# <#>)> raw (quick_stats_bar_chart [0]) => "[\"Random .. \ "]"