在ruby gem dasing.io中使用变量 - 仪表板.erb文件 - sinatra

时间:2016-06-08 20:55:49

标签: ruby sinatra dashing

使用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无法解析,因为我找不到资源。

2 个答案:

答案 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 %>