Ruby on Rails 2.3.14 애플리케이션에 선 그래프를 표시하는 웹 페이지를 만들려고합니다. Javascript를 사용하여 멋진 그래프를 만들 수있는 JS Charts라는 도구를 발견했지만 필요한 데이터를 보내는 데 문제가 있습니다. 여기에 정적 선 그래프 만들 수있는 방법입니다라인 그래프를 만들기 위해 Ruby 배열을 Javascript로 전달하는 방법
<script type="text/javascript">
var myData = new Array([1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]);
var myChart = new JSChart('chartcontainer', 'line');
myChart.setDataArray(myData);
myChart.draw();
</script>
내가 stats.html.erb에 그 코드를 넣어, 그것은 표시됩니다. 그러나 필자가 제공 한 선 그래프 데이터를 표시해야합니다. 로 2 차원 배열은 상기 제어기에서 생성된다
>> @a
=> [[1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]]
I 뷰에 해당 변수를 사용할 수와 같은과, 그것에 var myData
설정한다 : I가 다른 것을 시도
var myData = "<%= @a %>";
like :
var myData = JSON.parse("<%= @a.to_json %>");
하지만 아무 것도 작동하지 않는 것 같습니다. 내가 할 수 있는게 있습니까?
EDIT :
비어 제어기 뷰에 전달 어레이 (@a)에 문제가 있었다. 나는 다음을 사용할 수 있었다 :
var myData = JSON.parse("<%= @a.to_json %>");
오른쪽 데이터가보기로 전달되는 라인 그래프를 표시했다.
좋은 질문. .erb 파일에 있다고 가정하고 루비 보간이 작동한다고 가정 할 때 왜 예제가 작동하지 않는 지 잘 모르겠습니다. 어쩌면 문자열로 보간을 시도할까요? IE는 '<%= @.to_s %>'입니다. 자바 스크립트가 루비가 스크립트에 무엇을 입력했는지 평가할 것이기 때문에 ... – Andrew
@eric 결과 페이지의 생성 된 HTML을 붙여 넣습니다. – Abid
잠깐, 어떻게 든 이번에는 효과가있었습니다. 컨트롤러가 뷰에 전달한 데이터에 문제가 있다고 생각합니다 ('@ a'). JSON.parse ("<% = @ a.to_json %>");'를 사용했습니다. 나는 적어도 응답을 평가한다. – Eric