Ruby on Rails - Übergabe von Variablen an eine partielle innerhalb einer partiellen

8

Ich übergebe eine Sammlung (@feed_items) an ein _feed_item partially über die Option: collection. Innerhalb des _feed_item partiell möchte ich einen weiteren partiellen _like_button darstellen. Im Teil _like_button möchte ich auf ein bestimmtes Mitglied der Sammlung zugreifen können. Was soll ich vom _feed_item partiellen zum _like_button partiellen?

weitergeben? %Vor%

_feed.html.erb

%Vor%

_feed_item.html.erb

%Vor%

_like_button.html.erb

%Vor%

BEARBEITEN

Übergeben der lokalen Variablen wie in den Antworten unten funktioniert:

%Vor%

Nachdem jedoch das like übergeben wurde, erhalte ich ActionView::Template::Error (undefined local variable or method 'feed_item' , wenn versucht wird, das Formular erneut durch Ajax zu rendern. Wie kann ich die lokale Variable durch den Ajax-Aufruf erneut übergeben?

Controller

%Vor%

toggle.js.erb

%Vor%

_like_button.html.erb

%Vor%

_feed_item.html.erb

%Vor%     
diasks2 04.09.2012, 07:10
quelle

4 Antworten

7
%Vor%

Rails hat einige großartige Dokumentationen Ссылка

In toggle.js

%Vor%     
PriteshJ 04.09.2012, 07:15
quelle
1

Sie müssen die Variable feed_item als lokale Variable an die _like_button.html.erb -Partial übergeben.

%Vor%

Damit wird nur der lokale Name feed_item im inneren Partial festgelegt, der feed_item im äußeren Partial ist.

    
ronalchn 04.09.2012 07:15
quelle
1

Wenn Sie eine Sammlung zum Rendern des Partials verwenden, erhalten Sie die lokale Variable genauso wie den Namen der Render-Datei. Sie können also nur den Dateinamen als lokale Variable übergeben.

Zum Beispiel, wenn Sie _feed_item.html.erb haben und Sie diese partielle Verwendung der Sammlung wie

rendern %Vor%

Damit erhalten Sie die lokale Variable feed_item in diesem feed_item partial.

Sie können diese Variable feed_item also als lokale Variable an eine andere partielle (in Ihrem Fall _like_button.html.erb)

übergeben     
Mohanraj 04.09.2012 07:26
quelle
0

Wenn ich verstehe, müssen Sie Folgendes tun:

_feed.html.erb

%Vor%

_feed_item.html.erb

Hier definieren Sie eine lokale Variable namens feed_item und weisen den Wert als jedes Element Ihrer Sammlung zu. Sie können das Wort locals weglassen, weil Rails intelligent genug ist, um zu wissen, dass dies eine Variable local ist.

%Vor%

_like_button.html.erb

%Vor%

Ich hoffe, es hilft Ihnen.

    
Kleber S. 04.09.2012 08:53
quelle