2011-12-21 33 views
6

Tôi đã suy nghĩ về nội dung meta trong MVC, cụ thể là tiêu đề trang và mô tả meta (rất hữu ích để hướng dẫn đoạn mã Google hiển thị trên kết quả tìm kiếm của bạn).Nội dung meta ở đâu trong MVC?

Tôi không thể đưa ra quyết định chắc chắn về địa điểm này nên sống ở đâu. Thường có một chút logic xung quanh nó tùy thuộc (đối với ứng dụng UGC) về cách người đọc tương tác với nội dung.

Tôi không thể quyết định xem nội dung meta này có được xây dựng tốt hơn trong lớp xem hoặc bộ điều khiển hay không. Nó gần như chắc chắn không sống trong mô hình vì nó là cụ thể cho một cái nhìn cụ thể của dữ liệu tuy nhiên trong khi bản năng đầu tiên của tôi đã được đặt nó trong quan điểm tôi cảm thấy rằng nó có thể được trừu tượng tốt hơn.

Tôi quan tâm đến cách tiếp cận những người khác đã thực hiện.

+0

cho meta, tôi giả sử bạn đang đề cập đến thẻ html, h ave bạn đã thấy appliation.html.haml/erb? tôi chỉ sửa chữa css/views cho những thứ như tiêu đề trang – aishwarya

+1

Bạn nói đúng, đó không phải là một quyết định dễ dàng. Tôi thường đặt nó vào những người giúp việc. – apneadiving

+1

Lượt xem phải càng ngu càng tốt (IMO). Nó có khả năng phụ thuộc vào siêu dữ liệu, tuy nhiên; một số có thể sống rất tốt trong mô hình, nhưng nhiều khả năng thuộc về cấp độ bộ điều khiển, ngay cả khi nó không phải (luôn luôn) trong chính bộ điều khiển. –

Trả lời

6

Nội dung meta thường được đặt bằng cách sử dụng người trợ giúp, content_foryield.

Ví dụ:

# 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 
%> 

Nếu bạn có ý định làm streaming, bạn nên sử dụng provide thay vì content_for trong những người giúp đỡ bạn.

Đừng bao giờ đặt một biến Ví dụ trong điều khiển của bạn được sử dụng cho nội dung meta (như @title = 'blabla'; @description = 'blablabla')

Dưới đây là một số tài nguyên mà làm như vậy (danh sách chưa đầy đủ):

Các vấn đề liên quan