2011-12-21 21 views
6

MVC'de meta içeriği, özellikle de sayfa başlığı ve meta açıklamasını (arama sonuçlarınızda snippet Google şovlarını yönlendirmek için yararlı olan) düşünüyorum.Meta içeriği MVC'de nerede yaşıyor?

Bunun nerede yaşayacağı konusunda kesin bir karara varamam. Okuyucuların içerikle nasıl etkileşime girdiğine bağlı olarak (bir UGC uygulaması için) etrafta genellikle biraz mantık var.

Bu meta içeriğin görünüm katmanında veya denetleyicide daha iyi oluşturulup oluşturulmadığına karar veremiyorum. Verilerin belirli bir görüntüsüne özgü olduğu için modelde kesinlikle yaşanmaz, ancak ilk içgüdüm onu ​​daha iyi soyutlanmış olabileceğine inandığı görüşe sokmaktı.

Diğer insanların aldıkları yaklaşımla ilgileniyorum.

+0

i html etiketine kastediyoruz varsayalım, h (slaytlar indirilebilir) apation.html.haml/erb'yi gördünüz mü? sadece sayfa başlığı gibi şeyler için css/görünümleri tamir ediyorum – aishwarya

+1

Haklısınız, bu kolay bir karar değil. Bunu genelde yardımcılara koyarım. – apneadiving

+1

Görünümler mümkün olduğunca aptal olmalı (IMO). Büyük olasılıkla meta verilere bağlıdır. Bazıları modelde çok iyi yaşayabilir, ancak kontrolör seviyesinde (her zaman) olmasa bile kontrolör seviyesine daha çok aittir. –

cevap

6

Meta içeriği genellikle yardımcılar, content_for ve yield kullanılarak ayarlanır. Örneğin

: Eğer streaming yapmak niyetinde ise

# app/helpers/application_helper.rb 
def title(title) 
    content_for :title, title 
end 

def description(description) 
    content_for :description, description 
end 

# app/views/layouts/application.html.erb 
<title>My app <%= yield :title %></title> 
<meta name="description"><%= yield :description %></meta> 

# app/views/some_controller/some_action.html.erb 
<% 
title @an_instance.an_attribute # or whatever you want by the way 
description @an_instance.another_attribute 
%> 

, kendi yardımcıları içinde provide yerine content_for kullanmalıdır.

  • BUILDING BULLETPROOF VIEWS:

    şimdiye İşte

    aynı (olmayan listesini) yapmak bazı kaynaklar şunlardır (örneğin @title = 'blabla'; @description = 'blablabla' gibi) meta içerik için kullanılır controller içerisinde bir örnek değişkeni koymayın

  • Rails Best Practices (ticari)
  • meta için