rails 3.1 render_to_string返回空字符串

kcl*_*air 5 ruby-on-rails rspec2 rspec-rails

从控制器方法,我试图捕获从另一个控制器渲染模板的输出.

视图文件位于:

path/to/show.html.erb
Run Code Online (Sandbox Code Playgroud)

在我的控制器中我有:

def create
  html_string = render_to_string :template => 'path/to/show'
  raise 'html string is empty!' if html_string.empty?
  # do some other stuff
end
Run Code Online (Sandbox Code Playgroud)

视图文件非常简单,只包含文本'foo'.

我没有得到关于rails无法找到show.html.erb文件的任何错误,但是html_string为空,并且引发了错误.

通过rspec控制器测试运行create方法时,我看到了这种行为.我还没有尝试通过rails服务器的代码.

有没有人看到我在这里失踪的东西?

kcl*_*air 15

原来这是由于我的控制器规格缺少重要的一行:

render_views
Run Code Online (Sandbox Code Playgroud)