Pregunta

Desde un método del controlador, estoy tratando de capturar la salida de representar una plantilla de otro controlador.

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

El archivo de vista es muy simple, solo que contiene el texto 'foo'.

No recibo ningún error sobre Rails que no puedan encontrar el archivo show.html.erb, pero html_string está vacío y el error se plantea.

Veo este comportamiento al ejecutar el método Crear a través de una prueba de controlador RSPEC. Todavía no he probado el código a través del servidor Rails.

¿Alguien ve algo que me falta aquí?

¿Fue útil?

Solución

Esto resulta debido a que la especificación de mi controlador se pierde la línea importante:

render_views

Otros consejos

Esto debería funcionar

describe UsersController do
 integrate_views
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top