2011-10-28 8 views
9

newbie totale cercando di lavorare attraverso le rotaie tutorial su lynda.comRails non rendere un parziale sulla pagina web

Il codice è molto breve ed esattamente il modo in cui è sul video, ma non riesco a ottenere la mia pagina per rendere il parziale. Quando eseguo l'esecuzione sul server, non esegue il rendering del parziale, ma lo salta. Nessun messaggio di errore. Grazie in anticipo

questo è edit.html.erb

<%= link_to("<< Back to List", {:action => 'list'}, :class => 'back=link')%> 

<div class="subject edit"> 
    <h2>Edit Subject</h2> 

    <%= form_for(:subject, :url => {:action => 'update', :id=>@subject.id}) do |f| %> 

     <% render :partial => 'form', :locals => {:f => f} %> 

     <div class="form-buttons"> 
      <%= submit_tag("Update Subject")%> 
     </div> 

    <% end %> 
</div> 

e questo è _form.html.erb

<table summary="Subject form fields"> 
    <tr> 
     <th>Name</th> 
     <td><%= f.text_field(:name) %></td> 
    </tr> 
    <tr> 
     <th>Position</th> 
     <td><%= f.text_field(:position) %></td> 
    </tr> 
    <tr> 
     <th>Visible</th> 
     <td><%= f.text_field(:visible) %></td> 
    </tr> 
</table> 

risposta

31

è necessario il segno =:

<%= render :partial => 'form', :locals => {:f => f} %> 

(avevi <% render ....)

+2

wow grazie! errore totale rubino nuby. –

+0

Non posso credere di averlo fatto. Ancora! Ma una volta qui, per notare che in Rails 4+ puoi omettere i partial e i locals: '= render 'form', f: f'. Molto più breve – zmilojko

+1

perché le rotaie non avvertono questo tipo di errore di battitura ... – Hong

Problemi correlati