Reputation: 2224
from a controller method, i'm trying to capture the output of rendering a template from another controller.
the view file is located here:
path/to/show.html.erb
in my controller i have:
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
the view file is very simple, just containing the text 'foo'.
i'm not getting any error about rails not being able to find the show.html.erb file, but html_string is empty, and the error is raised.
i'm seeing this behavior when running the create method through an rspec controller test. i haven't tried the code through the rails server yet.
does anyone see anything i'm missing here?
Upvotes: 5
Views: 1599
Reputation: 478
This should work
describe UsersController do
integrate_views
Upvotes: 0
Reputation: 2224
this turns out to be due to my controller spec missing the important line:
render_views
Upvotes: 16