2011-07-01 28 views
42

Ruby on Rails 3.0.7 kullanıyorum ve kısmi şablonlar kullanmayı planlıyorum. Başvurumdaki bütün sınıflar aynı kısmi parçaları kullanacaktı, bu yüzden bütün bunların yerini belirlemek zorundayım.Hangi klasörde "global" paylaşılan kısmi şablonlar koymalıyım?

lib klasöründe "genel" paylaşılan kısmi şablonlar koymak iyi bir fikir midir? Hayır ise, bunları nereye koyacağınız klasörü seçmek için yaygın bir uygulama nedir? Bu klasörü nasıl doğru adlandıracağınıza ve yükleyeceğinize dair herhangi bir tavsiye var mı?

cevap

53

siz "bir listede sıra" bir standart varsa app/views/shared tüm paylaşılan partials yerleştirerek ve

render :partial => 'shared/partial_name' 

olarak başvuran standart kısmi (diyelim ki, bir indeks sayfası için), bir kullanabilirsiniz kısmi gibi paylaşılan:

# To render a single object row: 
render :partial => 'shared/item', :locals => { :item => @item } 
# Or to render them all: 
render :partial => 'shared/item', :collection => @items 
+4

alınan bu hala Raylar 4 için doğru mu? –

+0

@JamesMcMahon Evet, Raylar 4 ile çalışır. – jlhonora

+0

raylar 5 hakkında ne, raylar 5 daha iyi bir yolu var mı veya aynı –

4

Sözleşmeleri birçok partials olacak ediyorsanız app/views/shared

altına almak olduğunu, seni tavsiye ederim Bu dizinin alt dizinlerine yerleştirmek, uygulamanıza ne anlam ifade ediyorsa, bir dizindeki birçok kısmi sistem genellikle iyi bir uygulama değildir.

15

Raylar 4:

render partial: 'partial_name', variable_name: variable 

yararı geçerli:

Partials Eğer Sonra her yerde kolayca yapabilirsiniz uygulamanızda /app/views/application

uygulamanıza dışarı üzerinden kullanmak niyetinde koymak Kısmi olarak belirli bir görünüm alanında kısmi olarak, /app/views/controller_name/_partial_name.html.erb'da kısmi anlamların yeniden tanımlanması ve kısmi çağrıların ne olacağını yeniden tanımlayarak İçinde bulunduğunuz daha özel bağlam. Eğer bu yoksa, uygulama seviyesini kısmi olarak alırsınız.

Öneri Thoughtbot

+0

Bu, adlandırılmış denetleyicileri kullanırken işe yaramıyor. Ardından, dosyaların isim-dışı –

+0

geri dönüşüne gerek kalmadan "app/views/NAMESPACE/application" altında olmasını bekler. İkinci değerlendirmede; Bu sorun sadece benim özellikleri çalıştırırken ortaya çıkıyor, ancak sadece uygulama kullanırken .. –

İlgili konular