我一直在考虑 MVC 中的元内容,特别是页面标题和元描述(这对于指导 Google 在搜索结果上显示的片段很有用)。
不过,我无法就它应该住在哪里做出明确的决定。它周围通常有一些逻辑,具体取决于(对于 UGC 应用程序)读者如何与内容交互。
我无法决定这个元内容是否在视图层或控制器中构建更好。它几乎肯定不会存在于模型中,因为它特定于数据的特定视图,但是虽然我的第一直觉是将其放入视图中,但我觉得它可能会更好地抽象。
我对其他人采取的方法感兴趣。
元内容通常使用助手设置,content_for
and yield
.
例如:
# 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
%>
如果你打算这样做流媒体 http://api.rubyonrails.org/classes/ActionController/Streaming.html,你应该使用provide
代替content_for
在你的助手中。
永远不要将用于元内容的实例变量放入控制器中(例如@title = 'blabla'; @description = 'blablabla'
)
以下是一些具有相同功能的资源(未详尽列出):
-
打造防弹景观 http://en.oreilly.com/rails2011/public/schedule/detail/19279(幻灯片可下载)
-
Rails 最佳实践 http://www.codeschool.com/courses/rails-best-practices(商业的)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)