2012-09-25 8 views
5

Questo è il mio codice per il rendering parziale (la collezione @parties viene generata correttamente, ho provato che):Passando variabile locale verso l'interno parziale per ogni ciclo rotaie 3

 <% @parties.each do |party| %> 
      <div class="item"> 
       <%= render 'parties/party', :object => party %> 
      </div> 
     <% end %> 

E questo è il codice nel parziale:

<%= party.name %> 

Tuttavia, ottengo il seguente errore:

undefined method `name' for nil:NilClass 

sono al mio fine ingegno, qualcuno per favore aiuto: - |

Inoltre, questo è il codice per il controller di generare la vista contenente la parziale (chiamato default_controller del controllore):

def index 
    @parties = Party.all 
end 

È di qualsiasi conseguenza che questo non è il parties_controller?

risposta

10

ho provato qualcosa di simile qui sotto e ha funzionato

<%= render :partial => 'party', :object => party %> 

e posso accedere come party.name. la variabile locale prende il nome dal nome parziale che è party qui.

Nota: Im supponendo che i due parziali sono di parties_controller. Quindi dovrebbe funzionare.

Aggiornamento: Ecco cosa Ive ha provato di nuovo con

class PostsController < ApplicationController 
    #... ... 
    def index 
     @posts = Post.all 
     @comments = Comment.all #<---- Loading comments from PostsController 
     #... ... 
    end 
end 

#views/posts/index.html.erb 

<% @comments.each do |comment| %> 
    <%= render :partial=>"comments/comment", :object=>comment %> 
<% end %> 

#views/comments/_comment.html.erb 

<%= comment.body %> 

E la sua worki ng :)

+0

Sebbene il link http://apidock.com/rails/ActionController/Base/render sia deprecato, fornisce alcuni buoni esempi di rendering. – Samiron

+0

La pagina che utilizza il partial non viene visualizzata tramite parties_controller - perché è un problema? (Il codice per il controller in uso ottiene ancora tutte le parti dal database usando @parties = Party.all) – nicohvi

+0

Ive ha aggiornato il mio post con un altro esempio. Ecco il minuscolo progetto di binari che ne sto dando l'esempio. ** http: //goo.gl/bB9Ky**. Puoi scaricare e vedere in azione da solo :) – Samiron