8

Kısmi örneklerdeki örnek nesnelere erişemiyorum. Örnek: denetleyicisiActiveAdmin - Örnek değişkenlere kısmi olarak nasıl erişilir?

ben:

ActiveAdmin.register Store do 
    sidebar "Aliases", :only => :edit do 
    @aliases = Alias.where("store_id = ?", params[:id]) 
    render :partial => "store_aliases" 
    end 
end 

sonra _store_aliases.html.erb kısmi I sahiptir: Bu çalışmaz

<% @aliases.each do |alias| %> 
    <li><%= alias.name %></li> 
<% end %> 

. Bir görünümde mantığı atıyorum olarak yapmak korkunç çalışır tek şey (şudur:

Orada kullanmak için lütfen kısmi için örnek değişkeni geçmek zorunda
<% @aliases = Alias.where("store_id = ?", params[:id]) %> 
    <% @aliases.each do |alias| %> 
    <li><%= alias.name %></li> 
    <% end %> 
+0

Ruby :( – halfdan

+0

bir for-loop kullanmak için korkunç Bu, gerçekten gerçek kod .each var ama nedense buraya yazarak sona erdi! :) (lanet php arka plan) – Hopstream

cevap

17
aktif kısmi verilen değişken tanımlamamız gerekir kısmi render ederken. hattınızı değiştirin

render :partial => "store_aliases" 

senin kısmi değişkenler İçerisinde

render :partial => "store_aliases", :locals => {:aliases => @aliases } 

için yerel değişken olarak daha sonra erişilebilir (değil bir örnek değişkeni!). Mantığınızı, @'u kaldırarak kısmi olarak ayarlamanız gerekir. Daha fazlasını okumak için
<% aliases.each do |alias| %> 
    <li><%= alias.name %></li> 
<% end %> 

API documentation ("Yerel Değişkenler Geçme 3.3.4" özellikle bölüm) bir göz.

9

:

ActiveAdmin.register Store do 
    sidebar "Aliases", :only => :edit do 
    @aliases = Alias.where("store_id = ?", params[:id]) 
    render :partial => "store_aliases", :locals => { :aliases => @aliases } 
    end 
end 

Sonra kısmi de yerel değişken olarak kullanmak mümkün olacak

<% aliases.each do |alias| %> 
    <li><%= alias.name %></li> 
<% end %> 
+1

Teknik olarak burada ilk var (1 saniye de olsa). Bummer sen kuduzları almadın. Size bir oy verdim;) – Jurgen