2

我刚刚开始尝试使用生成器。在我生成的视图模板之一中,我想这样调用render

index.js.slim
  transition("#main", "<%= escape_javascript(render 'index') %>");

当我尝试使用生成器时,出现此错误:

(erb):1:in `template': undefined method `render' for #<Slim::Generators::ScaffoldGenerator:0x000000041b2a20> (NoMethodError)

Rails 真的不能render从生成器中调用吗?还是我做错了什么?

4

1 回答 1

1

Railscast 218更详细地介绍:

首先要注意的是,因为我们使用的是模板方法,所以代码中的所有 erb 标签都会在生成器运行时执行。如果我们想在生成的文件中包含任何 erb,我们必须在每个 erb 标签的开头转义百分号,我们已经为上面的大多数 erb 代码做到了这一点。

在这种情况下:

transition("#main", "<%= escape_javascript(render 'index') %>");

应该变成:

transition("#main", "<%%= escape_javascript(render 'index') %>");

它所需要的只是一个额外的东西%来逃避erb。

于 2013-05-02T00:03:34.797 回答