使用slim-lang grunt-slim插件渲染部分抛出“未定义的方法渲染”

时间:2013-11-23 14:10:37

标签: ruby-on-rails ruby gruntjs slim-lang

我正在努力为我的网络项目使用slim-lang。我有以下设置:

  • ruby​​ 2.0
  • rails 4.0
  • node v0.10.17

此设置正在使用grunt和grunt-slim插件。

乍一看,slim模板编译得很好,但是当我尝试使用partials时,我收到错误:

NoMethodError: undefined method `render' for #Object:0x000000029db190

要重现的示例代码:

_foo.slim:

a (href="#") click

bar.slim:

= render 'foo'

我是前端开发人员,所以我对ruby或rails知之甚少。我不明白是什么导致了这个错误 - 它是咕噜咕噜的插件还是与红宝石有关?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

咕噜咕噜的插件calls the command-line slim utility。通过创建您提供并运行的两个示例文件,我能够重现您获得的错误消息:

slimrb --trace bar.slim

这个错误正在发生,因为裸render方法不是苗条宝石的一部分,它是rails的一部分。通过将bar.slim更改为:

,我能够使上述命令生效
= Slim::Template.new('_foo.slim').render

这显然更加冗长,抱歉。我不确定是否有更好的方法来集成grunt和rails的模板来解决这个问题,但你可以让rails进行渲染。