【问题标题】:Sinatra and Chartkick ExampleSinatra 和 Chartkick 示例
【发布时间】:2014-06-07 22:53:50
【问题描述】:

我对 Ruby 作为 Web 平台还很陌生,通过调整和扩展示例来学习最好。我喜欢 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 文件放在 public 文件夹中。还添加了 Hockey 以确保它不会神奇地默认为某些罐头示例。谁不喜欢曲棍球?

【问题讨论】:

    标签: sinatra chartkick


    【解决方案1】:

    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}) %>
    

    或命名模板:

    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
    

    为了方便起见,我在这里使用了heredocs,请注意格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多