2011-11-30 18 views
5

desde un método de controlador, estoy tratando de capturar la salida de renderizar una plantilla desde otro controlador.rails 3.1 render_to_string devolver cadena vacía

el archivo de vista se encuentra aquí:

path/to/show.html.erb 

en mi controlador tengo:

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 

archivo de la vista es muy sencillo, basta con que contenga el texto 'foo'.

no obtengo ningún error sobre que los rieles no puedan encontrar el archivo show.html.erb, pero html_string está vacío y se produce un error.

Estoy viendo este comportamiento al ejecutar el método create a través de una prueba de controlador rspec. aún no he probado el código a través del servidor de rails.

¿Alguien ve algo que me falta aquí?

Respuesta

14

esto resulta ser debido a mi controlador de especificación falta la importante línea:

render_views 
+0

Tan pronto como le sea posible, estar seguro y marque esta respuesta como aceptada para que otros sepan que hay una solución. –

0

Esto debería funcionar

describe UsersController do 
integrate_views