使用dashing.io制作一些精彩的信息中心。据我所知,使用ruby和sinatra构建了dashing,并在特定目录中使用.erb文件来制作仪表板。
使用.erb作业设置仪表板或获取信息到我的仪表板中没有问题。
我要做的是使用从我的一个仪表板.erb文件中的uri字符串传递的变量。仪表板目录还有一个看起来像模板的layout.erb文件,这就是我想要的内容:
<% group = params["apps"] %>
然而这在sinatra中给我一个错误。理想情况下,我想添加一个uri参数来更改仪表板。所以我想在sample.com:3030/mydashboard
添加一个uri参数sample.com:3030/mydashboard?apps=group1
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<div data-id="<% group %>" data-view="List" </div>
</li>
并使用它来动态创建我的erb文件:
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<div data-id="group1" data-view="List" </div>
</li>
我开始在sinatras文档上查看erb布局,但是这里有很多不同的技术,我不确定页面的构建顺序以及我需要在哪个点或文件进行这些更改。< / p>
更新
我以为我正在取得一些进展,我分叉了宝石并在app.rb文件中更改了这一行:
get '/:dashboard/' do
到
get '/:dashboard/group/' do
允许我在我的仪表板中使用它来获取url参数<%= params[:group] %>
,但这似乎打破了仪表板。 Gridster仍然显示小部件框但没有数据。这似乎打破了view/[widget].html
无法解析,因为我找不到资源。
答案 0 :(得分:2)
这已在issue in dashing repo本身解决。
正如您在代码中使用的那样,erb文件可以从sinatra访问params
。
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<div data-id="<%= params[:app] %>" data-view="List" </div>
</li>
如果你点击
sample.com:3030/mydashboard?apps=group1
data-id
将被视为 group1 。
如果您有冒险经历,可以配置 UPDATE 部分中的自定义路线。
以下链接将为您提供足够的信息
How dashboards are accessed with routes
How routing works in sinatra
即使如此多的技术都在冲刺中,你只需要查看sinatra中的路由以及如何在划线中使用
答案 1 :(得分:1)
对此的回答要简单得多,然后试图干涉这颗潇洒的宝石,并且非常接近我最初的尝试。感谢fiverr的nauoa65!
这是我在仪表板中所需要的,这个答案在sample.erb仪表板上。
<!-- The parameter should come from http://sample.com:3030/sample?apps=mytestparam -->
<% group = params[:apps] || "A default value if parameter is not set" %>
<!-- The equal sign outputs the content of variable to html -->
<%= group %>