ActiveAdmin — How für den Zugriff auf Instanz-Variablen von partials?
Ich kann nicht scheinen, um den Zugriff auf Instanz-Objekte in der Teiltöne. Beispiel:
Controller ich habe:
ActiveAdmin.register Store do
sidebar "Aliases", :only => :edit do
@aliases = Alias.where("store_id = ?", params[:id])
render :partial => "store_aliases"
end
end
Dann in der _store_aliases.html-Code.erb teilweise habe ich:
<% @aliases.each do |alias| %>
<li><%= alias.name %></li>
<% end %>
Funktioniert das nicht. Das einzige, das funktioniert (das ist schrecklich zu tun, wie ich bin, putting-Logik in einer Ansicht ist dies:
<% @aliases = Alias.where("store_id = ?", params[:id]) %>
<% @aliases.each do |alias| %>
<li><%= alias.name %></li>
<% end %>
- Es ist schrecklich, so verwenden Sie eine for-Schleife in Ruby 🙁
- sorry, ich habe die .jeder im eigentlichen code, aber aus irgendeinem Grund landete die Eingabe für das hier! 🙂 (verdammt, php hintergrund)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim Rendern von einer partiellen, die Sie brauchen, um aktiv zu definieren, die Variablen, die gegeben sind, die teilweise. Ändern Sie Ihre Linie
zu
Innen Ihre teilweise der Variablen ist dann zugänglich, wie eine lokale variable (nicht eine Instanz-variable!). Sie müssen passen Sie Ihre Logik innerhalb der teilweise durch entfernen der
@
.Zur weiteren Lektüre haben Sie einen Blick auf die API-Dokumentation (insbesondere den Abschnitt "3.3.4 vorübergehende Lokale Variablen").
Müssen Sie die Instanz-variable auf Ihren teilweise in Ordnung, es zu verwenden:
Dann in Ihre teilweise werden Sie in der Lage, es zu benutzen als die lokale variable