2014-04-23 3 views
4

Ruby를 웹 플랫폼으로 처음 사용하고 예제를 적용하고 확장하여 최상의 학습 효과를 얻었습니다. 저는 Sinatra를 좋아하고 Chartkick과 Chart를 사용하여 차트를 표시하려고합니다. 불행히도, 나는 가장 간단한 예제를 실행하는 데 어려움을 겪고 있으며, 완전한 예제가 부족한 것 같습니다 (많은 '하나의 라이너'). 여기에 내가 무엇을 가지고 :Sinatra 및 Chartkick 예제

require 'sinatra' 
require 'chartkick' 

get '/' do 
'<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %> 
<%= pie_chart({"Football" => 10, "Basketball" => 5}) %>' 
end 

그래서 내가 무슨 짓궂은 간단한 일을하고있어? 어떤 도움이라도 대단히 감사하겠습니다. 감사!

편집은 허용 대답에 따라 내 솔루션 :

require 'sinatra' 
require 'chartkick' 

template :layout do 
<<LAYOUT 
<html> 
<head> 
<title>Sinatra ERB Chartkick Test</title> 
<script src="//www.google.com/jsapi"></script> 
<script src="chartkick.js"></script> 
</head> 
<body> 
<%= yield %> 
</body> 
</html> 
LAYOUT 
end 

template :index do 
<<INDEX 
<center> 
<h1>#{Time.now.inspect}</h1> 
<p> 
<%= pie_chart({"Football" => 10, "Basketball" => 5, "Hockey" => 2}) %> 
</p> 
</center> 
INDEX 
end 

get '/' do 
    erb :index 
end 

또한, (나 같은) 초보자를 위해, 나는 공공 폴더에 chartkick.js 파일을 넣어. 또한 일부 하찮은 예를 마술처럼 기본값으로 설정하지 않았는지 확인하기 위해 하키를 추가했습니다. 그리고 누가 하키를 좋아하지 않습니까?

답변

2

This is the section of the docs이 예를 완료해야합니다. 보기에 파일을 별도로 표시하지 않으려면 인라인 템플릿을 사용하십시오.

get '/' do 
    erb :index 
end 

__END__ 

@@ layout 
<html><body> 
    <%= yield %> 
</html></body> 

@@ index 
<%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %> 
<%= pie_chart({"Football" => 10, "Basketball" => 5}) %> 

또는 명명 된 템플릿 : 여기 편의를 위해 heredocs 사용했습니다

template :layout do 
    <<LAYOUT 
<html><body> 
    <%= yield %> 
</html></body> 
LAYOUT 
end 

template :index do 
    <<INDEX 
    <%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %> 
    <%= pie_chart({"Football" => 10, "Basketball" => 5}) %> 
INDEX 
end 

get '/' do 
    erb :index 
end 

, 그냥 형식의주의하십시오.