2012-07-09 14 views
5

¿Cómo puedo renderizar un parcial sin tener que proporcionar el "_" delante del nombre del archivo? ¿Hay algún parámetro al que pueda llamar para no usarlo?Rieles - ¿Renderizar un parcial sin tener que usar "_" delante del nombre del archivo?

Este problema apareció usando RABL y Backbone: usar RABL requiere que tenga un archivo en mis vistas como "index.json.rabl". Pero cuando uso el JSON en la carga de la página (como es habitual con Backbone), debo llamar al archivo "_index.json.rabl". Estos 2 archivos son exactamente lo mismo, solo se requiere tener diferentes nombres. Estoy buscando usar solo 1 archivo, "index.json.rabl" y forzar la función render() para buscar ese nombre de archivo, sin el "_".

=> EDITAR

Las soluciones estándar que la gente ha descritas a continuación no funcionan. ¿Es probable que sea un problema de RABL? El siguiente código siempre va al archivo views/countries/_index.json.rabl.

En mi archivo .erb

countryList.reset(<%=get_json("countries", "index", @countries)%>); 

En mi archivo application_helper.rb

def get_json(view_path, view_action, object) 
    path = view_path + '/' + view_action + ".json" 
    return raw(render(path, object: object, :formats => [:rabl])) 
end 

Respuesta

1

Desde el RailsCast #322 on RABL:

<div id="articles" data-articles="<%= render(template: "articles/index.json.rabl") %>" > 

empezar desde aquí, y luego averiguar lo que está incorrecto. Pero está claro que render template: path es la sintaxis que desea.

+0

El código que ha pegado de RailsCast no funciona. Literalmente pegado en mi página, cambiando "artículos" a "países", sigue el mismo error de "Plantilla falta". – bluedevil2k

+0

Probablemente es hora de que crees una aplicación de vainilla con una plantilla Rabl implementada como Railscasts, y veamos el código por nosotros mismos. La mayoría de las respuestas aquí le dicen lo mismo: es probable que haya algo en su aplicación que esté causando sus problemas. –

1

¿Usted intentó render :template => "file_name"?

+0

que todavía tiene como predeterminado usar "_" en la carpeta views/layouts - arroja un error si ese archivo no está allí – bluedevil2k

+0

que no puede ser correcto, consulte este capítulo sobre la funcionalidad 'render': http: // guides.rubyonrails.org/layouts_and_rendering.html#using-render – keymone

0

intento Ok:

<%= render :file => 'views_directory/index' %> 

Dónde views_directory es el nombre de su directorio en las vistas 8)

antigua:

Si el contenido es el mismo uso:

render :partial => "index" 

en index.json.rabl y el contenido en _index.json.rabl

+0

Estoy tratando de evitar tener 2 archivos creando una función de ayuda a la que puedo llamar que codificará la necesidad de "_". Tome mi ejemplo x 50 para una aplicación grande, sería mucho más fácil simplemente tener un método de ayuda simple. – bluedevil2k

+0

Ver la respuesta de @ChrisLedet –

+0

No, eso tampoco funciona. Parece que ahora es un problema específico de RABL. Modificaré mi publicación anterior para incluir el código RABL. – bluedevil2k

2

Puede hacer que un archivo de la siguiente manera:

render :file => "filename" 
Cuestiones relacionadas