【问题标题】:Use a variables in ruby gem dasing.io - dashboard .erb files - sinatra在 ruby​​ gem dasing.io - 仪表板 .erb 文件 - sinatra 中使用变量
【发布时间】:2016-10-09 07:51:24
【问题描述】:

dashing.io 合作制作一些很棒的仪表板。我知道 dashing 是使用 ruby​​ 和 sinatra 构建的,并使用特定目录中的 .erb 文件来制作仪表板。

我可以通过 .erb 作业设置 dashing 或将信息输入我的仪表板。

我要做的是使用从我的仪表板 .erb 文件之一中的 uri 字符串传递的变量。仪表板目录也有一个 layout.erb 文件,看起来像模板,这就是我要放置的内容:

<% group = params["apps"] %>

但是,这给了我在 sinatra 中的错误。理想情况下,我想添加一个 uri 参数来更改仪表板。所以我想在sample.com:3030/mydashboard 上运行我的dashing 实例添加一个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 布局,但由于这里有很多不同的技术融合在一起,我不确定页面的构建顺序以及我需要在什么时间点或文件进行这些更改。

更新:

我以为我取得了一些进展,我分叉了 gem 并在 app.rb 文件中更改了这一行:

get '/:dashboard/' do

get '/:dashboard/group/' do

这允许我在仪表板中使用它来获取 url 参数 &lt;%= params[:group] %&gt; 但这似乎破坏了仪表板。 Gridster 仍然显示小部件框,但没有数据。这似乎破坏了view/[widget].html 的可解析性,因为我找不到资源。

【问题讨论】:

    标签: ruby sinatra dashing


    【解决方案1】:

    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

    即使在dashing中融合了这么多技术,你只需要看看sinatra中的路由以及它是如何在dashing中使用的

    【讨论】:

      【解决方案2】:

      这个问题的答案比尝试干预这个漂亮的宝石要简单得多,并且非常接近我最初的尝试。感谢 Fiverr 的nauoa65

      这是我在仪表板的 erb 中需要的,这个答案在 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 %>
      

      【讨论】:

        猜你喜欢
        • 2015-12-31
        • 2013-11-14
        • 1970-01-01
        • 2016-07-30
        • 1970-01-01
        • 2015-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多