2012-09-25 20 views
5

Este es mi código para hacer que el parcial (se está generando la colección @parties correctamente, he probado eso):Pasando variable local al interior parcial para cada bucle carriles 3

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

Y este es el código en el parcial:

<%= party.name %> 

Sin embargo, me sale el siguiente error:

undefined method `name' for nil:NilClass 

estoy en mi extremo de los ingenios, alguien por favor ayuda: - |

Además, este es el código del controlador para renderizar la vista que contiene el parcial (denominado default_controller del controlador):

def index 
    @parties = Party.all 
end 

¿Es de alguna importancia que este no es el parties_controller?

Respuesta

10

he intentado algo parecido a continuación y funcionó

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

y puedo acceder como party.name. la variable local lleva el nombre del nombre parcial que es party aquí.

Nota: Im suponiendo que sus dos parciales son de parties_controller. Entonces esto debería funcionar

Actualización: Esto es lo que he intentado con otra vez

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

Y su elaboració ng :)

+0

Aunque el enlace http://apidock.com/rails/ActionController/Base/render está en desuso, proporciona algunos buenos ejemplos de renderizado. – Samiron

+0

La página que usa el parcial no se representa a través del control parties_controlador. ¿Por qué es un problema? (El código para el controlador que se está utilizando todavía obtiene todas las partes de la base de datos usando @parties = Party.all) – nicohvi

+0

He actualizado mi publicación con otro ejemplo. Aquí está el pequeño proyecto de rieles del que estoy dando ejemplo. ** http: //goo.gl/bB9Ky**. Puedes descargarlo y puedes verlo en acción tú mismo :) – Samiron

Cuestiones relacionadas