如何将Ruby中的代码插入HTML?

时间:2015-06-02 16:20:07

标签: html ruby

是否可以将Ruby插入HTML,就像将Javascript或CSS插入HTML一样。

4 个答案:

答案 0 :(得分:0)

从客户端来看,它完全不可能,我不知道任何可以直接解释Ruby的浏览器。

但假设你还是初学者,我想你正在寻找: 在ROR中的Erb模板:

<h1>Listing Books</h1>

<table>
  <tr>
    <th>Title</th>
    <th>Summary</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @books.each do |book| %>
  <tr>
    <td><%= book.title %></td>
    <td><%= book.content %></td>
    <td><%= link_to "Show", book %></td>
    <td><%= link_to "Edit", edit_book_path(book) %></td>
    <td><%= link_to "Remove", book, method: :delete, data: { confirm: "Are you sure?" } %></td>
  </tr>
<% end %>
</table>

<br>

<%= link_to "New book", new_book_path %

Doc:http://guides.rubyonrails.org/layouts_and_rendering.html

这是服务器端模板,它意味着HTML页面将在服务器端生成,并将其作为简单的HTML页面发送,而不需要任何Ruby。

如果没有,为什么要从客户端使用Ruby? 就像有人注意到的那样,你有一些可以将Ruby编译成Js的预处理器(即使它对我来说似乎没什么用处,但它只是我的意见)

答案 1 :(得分:0)

您可能想看看蛋白石:http://opalrb.org/

无法在浏览器中本机运行Ruby。它必须在某些时候转换为JS,无论是在加载页面时还是在部署站点时作为预处理任务。

答案 2 :(得分:0)

我记得在某些时候有使用Ruby + NaCl进行铬的实验。

看起来有nacl port for ruby 2.0。这是最接近你可以在浏览器中运行ruby。寻找使用红宝石氯化铬作为概念证据的IRB chrome extension

答案 3 :(得分:0)

答案取决于您是否有服务器。 如果后面有一个ruby服务器(例如你使用Rails),那么你可以在html中使用erb标签(因为服务器会渲染你的'模板'并生成'完成'的html代码)。

如果你有一个php服务器,那么你将在html中使用标签(再次模板渲染发生在服务器端)。

另一个解决方案是使用客户端模板引擎,客户端获取整个数据+模板并生成“已完成”的html代码。对于这种渲染,请查看handlebarsjs或underscorejs模板。