2011-06-08 18 views
5

Rails 3.0.7, Windows 7 NetBeans 6.9.1, 1.5.1 JRuby, Ruby 1.8.7Częściowa rendering nie pokazano

mam app/views/browsing/index.rhtml z tym odpowiedniej części, koncentrują się na render rozmowy:

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

I mam app/views/browsing/_header_field.rhtml o następującej treści:

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

debug-print (pierwsza linia) jest prawidłowo wykonany, widzę go w oknie wyjściowym. Mogę używać IDE NetBeans do oglądania wykonania tego pliku wiersz po linii, zdarza się tak, jak się oczekuje

Problem polega na tym, że wyniki tego renderowania są w jakiś sposób usunięte w oknie, nie ma nic (bez tabeli komórki nagłówka) w ostatecznym renderowanym kodzie HTML. Że staje się (tylko odpowiednia część):

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

Okno wyjściowe produkuje to:

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) 

Wszystkie wskazówki są mile widziane! Z góry dziękuję!

Odpowiedz

15

Tak, <% ocenia tylko, gdzie <%= wyświetla również oszacowany kod.

Musisz zmienić
<% render :partial => 'browsing/header_field', :locals => {:name => name} %> do
<%= render :partial => 'browsing/header_field', :locals => {:name => name} %>

+0

O mój Boże ... to boli. Dziękuję Ci! – Notinlist

+1

nieważne ;-) nie ma za co. – pduersteler