Eco 是一种嵌入式 Coffeescript 模板语言。它类似于 ERB。有没有办法可以将它用作 Rails 应用程序中的服务器端模板语言?
最终目标是在客户端和服务器上使用一些用 Eco 编写的部分。
Eco 是一种嵌入式 Coffeescript 模板语言。它类似于 ERB。有没有办法可以将它用作 Rails 应用程序中的服务器端模板语言?
最终目标是在客户端和服务器上使用一些用 Eco 编写的部分。
我刚刚注意到 Rails 3.1 将支持这一点。基本上,Sam Stephenson 刚刚发布了 ruby-eco 并连接了 sprockets 来使用它。所以这意味着在你的视图模板中使用 .eco 现在可以正常工作了。
链接到提交
放入gem 'eco'
您的 Gemfile 并命名您的文件,.jst.eco
它应该可以在 Rails 3.1 中正常工作
[更新: 正如 Ben 在下面指出的那样,Eco 的创建者和 Rails 核心团队的成员 sstephenson 创建了一种名为ruby -eco 的东西,它可以让两者一起玩得很好。我在下面的原始答案早于该项目。]
直接执行是不可能的,因为Eco在 Node.js 上运行,并且您不能直接在 Rails 中运行 Node.js(请参阅这个相关问题)。
您可以将 Rails 应用程序中的某些路由代理到在不同端口上运行的 Node.js 应用程序,但是在两个应用程序之间传递信息没有任何简单的方法,因此这可能毫无意义。
目前,Eco vs. Rails 是一个非此即彼的决定。但是,如果您不愿意从 Rails 跃迁到 Node,您仍然可以使用Johnson在服务器端进行 JavaScript 模板,它可以让您从 Ruby 运行 JS。(据我所知,还没有人编写过 CoffeeScript-Johnson 集成——不过,您可以很容易地自己编写一个,使用coffee -pe
命令将 CoffeeScript 转换为 JavaScript。)
我有一个项目使用 eco inside rails 作为像 Liquid 这样的安全模板系统。我称它为 Ice 并在http://github.com/ludicast/ice结束。
最初,我使用了一些通用的 javascript 模板引擎,但围绕 eco 聚集的蒸汽使它成为一个简单的选择。