2010-05-12 13 views
35

me encuentro en una situación precaria aquí. Necesito renderizar parcialmente una página que no tenga un subrayado inicial.¿Puedo renderizar: una vista parcial sin guion bajo?

<%= render(:partial => "contact" ,:controller=>"home") %> 

este buscará

app/views/home/_contact.html.erb 

pero quiere que se vea para

app/views/home/contact.html.erb 

hay una manera de hacer esto.?

Gracias

+0

¿Por qué necesitarías hacer esto sin embargo? – Kezzer

+0

estoy atrapado en una situación precaria. La vista que intento renderizar es en realidad una vista de un controlador diferente con su propio diseño. no obstante, este controlador no lo usa como parcial. es por eso. – ZX12R

+0

También estoy atrapado en una situación similar. La vista que intento representar como parcial es una plantilla utilizada por javascript del lado del cliente. En el lado del cliente es una vista completa, pero en el lado del servidor es solo parcial. No quiero que las convenciones del lado del servidor arruinen mis convenciones del lado del cliente.^o^// ¡la web se complica! – Ziggy

Respuesta

60
<%= render :file => '/homes/contact' %> 
+0

no es mejor sin/sin casas? – shingara

+0

gracias ... deben al: ruta del archivo ser completa y no local para Contoller como .. <% = render: file => "contacto": Controlador => "casa" %> – ZX12R

+0

@shingara, sí, pero es mi hábito de utilizar la ruta absoluta, @ ZX12R, no, no puede "usar una ruta completa como" inicio/contacto " – fl00r

4

usted no debe tratar de pasar por alto las convenciones si no es realmente necesario. Supongo que contact.html.erb contiene un formulario. Pon esto en app/views/home/_contact.html.erb y preséntalo en app/views/home/contact.html.erb.

O como fl00r respondió:

<%= render :file => '/homes/contact' %> 
+2

El problema es que están empezando a surgir nuevos casos de uso, pero la convención se interpone en el camino. Considere: Tengo plantillas js en mis carpetas de activos que pertenecen a los controladores de primera clase en el lado del cliente. Quiero preprocesar estas plantillas en vistas del lado del servidor. Entonces en el lado del servidor, esto es parcial. En el lado del cliente, es una vista. Rails no reconocerá un parcial sin el '_', pero los piñones no compilarán una plantilla con un' _' inicial. La vida es más complicada que las convenciones^o^// – Ziggy

3

Como eteubert señala, uno de los puntos fuertes de los carriles es su carácter obstinado. Lo que estás tratando de hacer aquí es doblarlo a tu voluntad. No lo hagas Si necesita representar algo en otra página como parcial, entonces debería seguir la convención y extraer un parcial de la página original. Si hay un formulario en esa página, por ejemplo, extráigalo en un parcial y haga que la página original represente también el parcial.

Encontrarás que cuanto menos trates de luchar contra Rails, más fácil será.

Cuestiones relacionadas