2011-06-08 15 views
5

Rails 3.0.7, Windows 7, NetBeans 6.9.1, 1.5.1 JRuby, Ruby 1.8.7prestación parcial no se muestra

tengo app/views/browsing/index.rhtml con esta parte pertinente, se centran en la render llamada:

<table> 
    <tr> 
    <th><em><%=I18n.t('browsing.actions')%></em></th> 
    <% colnames = @_controller.model_class.column_names %> 
    <% colnames.each do |name| %> 
    <% render :partial => 'browsing/header_field', :locals => {:name => name} %> 
    <% end %> 
    </tr> 

y yo hemos app/views/browsing/_header_field.rhtml con el siguiente contenido:

<% puts "DEBUG: rendering " + name + " field." %> 
<% if @_controller.orderables.include?(name.to_sym) %> 
<% 
    otext = '' 
    oopts = @_controller.orderings[name]; 
    if !oopts.nil? 
    otext += ' ' + (oopts[:is_asc] ? '↓' : '↑') 
    otext += '<span class="small">'+oopts[:prio].to_s+'</span>' 
    end 
%> 
<th><%=link_to(name.tr('_',' '), { :controller => controller_path, :action => 'index', :o => name }, {:class => 'sort'})%> 
<%=((otext=='' || @_controller.orderings.size<=1) ? raw(otext) : link_to(raw(otext), { :controller => controller_path, :action => 'index', :o => name, :x => true }, {:class => 'delete_sort', :title => I18n.t('browsing.delete_sort')}))%></th> 
<% else %> 
<th><%=name.tr('_',' ')%></th> 
<% end %> 

la depuración-impresión (primera línea) se ejecuta correctamente, puedo verlo en la ventana de resultados. Puedo usar NetBeans IDE para ver la ejecución de este archivo línea por línea, sucede como se espera

El problema es que los resultados de esta representación se eliminan de alguna manera en la ventana, no hay nada (no hay tabla celdas de encabezado) en el HTML renderizado final. Que se representa (sólo la parte pertinente):

<table> 
    <tr> 
    <th><em>Actions</em></th> 
    </tr> 

La ventana de salida produce esto:

DEBUG: rendering id field. 
DEBUG: rendering inm_device_id field. 
DEBUG: rendering changes_id field. 

Started GET "/changes_and_devices" for 127.0.0.1 at Wed Jun 08 11:50:01 +0200 2011 
    Processing by ChangesAndDevicesController#index as HTML 
    ChangeAndDevice Load (2.0ms) SELECT `changes_and_devices`.* FROM `changes_and_devices` ORDER BY id desc LIMIT 20 OFFSET 0 
    SQL (18.0ms) SELECT COUNT(*) FROM `changes_and_devices` 
Rendered browsing/_header_field.rhtml (6.0ms) 
Rendered browsing/_header_field.rhtml (6.0ms) 
Rendered browsing/_header_field.rhtml (5.0ms) 
Rendered browsing/index.rhtml within layouts/application (189.0ms) 
Completed 200 OK in 245ms (Views: 207.0ms | ActiveRecord: 20.0ms) 

Todos los consejos son bienvenidos! ¡Gracias por adelantado!

Respuesta

15

Sí, <% solo evalúa dónde <%= también muestra el código de evaluación.

necesita cambiar
<% render :partial => 'browsing/header_field', :locals => {:name => name} %> a
<%= render :partial => 'browsing/header_field', :locals => {:name => name} %>

+0

Oh, Dios mío ... Eso duele. ¡Gracias! – Notinlist

+1

no importa ;-) de nada. – pduersteler