2011-06-08 7 views
5

Rails 3.0.7, Windows 7, NetBeans 6.9.1, JRuby 1.5.1, Ruby 1.8.7rendering parziale non mostrato

ho app/views/browsing/index.rhtml con questa parte rilevante, concentrarsi sulla render chiamata:

<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> 

e non ho app/views/browsing/_header_field.rhtml con il seguente contenuto:

<% 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 %> 

il debug-print (prima linea) viene eseguita correttamente, posso vederlo nella finestra di output. Posso usare il NetBeans IDE per guardare l'esecuzione di questo file riga per riga, accade in quanto si prevede

Il problema è che i risultati di questo rendering sono in qualche modo abbandonato sulla finestra, non c'è nulla (nessuna tabella celle di intestazione) nel codice HTML visualizzato finale. Ciò è reso (solo una parte rilevante):

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

La finestra di output produce questo:

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) 

Tutti i suggerimenti sono i benvenuti! Grazie in anticipo!

risposta

15

Sì, <% valuta solo dove <%= visualizza anche il codice valutato.

è necessario modificare
<% render :partial => 'browsing/header_field', :locals => {:name => name} %> a
<%= render :partial => 'browsing/header_field', :locals => {:name => name} %>

+0

Oh mio Dio ... Che fa male. Grazie! – Notinlist

+1

non importa ,-) prego. – pduersteler