从控制器方法,我试图捕获从另一个控制器渲染模板的输出。
视图文件位于此处:
path/to/show.html.erb
在我的控制器里我有:
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
视图文件非常简单,只包含文本'foo'。
我没有收到关于rails无法找到show.html.erb文件的任何错误,但是 html_string为空,并引发错误。
通过rspec控制器测试运行create方法时,我看到了这种行为。我还没有通过rails服务器试过代码。
有没有人看到我在这里遗失的任何东西?
答案 0 :(得分:15)
原来这是由于我的控制器规范错过了重要的一行:
render_views
答案 1 :(得分:0)
这应该有效
describe UsersController do
integrate_views