元内容位于 MVC 中的什么位置?

2024-01-08

我一直在考虑 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(使用前将#替换为@)

元内容位于 MVC 中的什么位置? 的相关文章

  • 带有 @global gem 的 Ruby/RVM - 捆绑包运行失败并显示“require”:无法加载此类文件 - 捆绑器 (LoadError)

    我学习了linux 1个月 当我试图使所有步骤从在 Heroku 上从 MySQL 迁移到 Postgres https devcenter heroku com articles heroku mysql我遇到了一个无法处理的错误 当我尝
  • 默认:Rails 资源路由的排除选项

    一个小问题 我正在将 Rails 用于 REST API 但由于它是 RESTful API 所以我并不真正需要 new or edit我的任何资源的路由 因为人们只会完全通过自动 JSON 请求而不是图形方式与此 API 交互 例如 不需
  • ruby 管道、IO 和 stderr 重定向

    我希望有一个 ruby 程序 一个 rake 任务 观察另一个 rake 任务的输出 输出写入器输出到 stderr 我想读一下这些行 我很难设置它 如果我有一个作家 stdout writer rb 不断打印一些东西 usr bin en
  • Rails 3 best_in_place 编辑在不刷新页面的情况下无法工作

    我从Bernat的博客rails迷你教程中获取了评论代码 我尝试使用他的 best in place gem 添加就地编辑功能 在大多数情况下它工作正常 我的代码部署在http falling spring 3964 herokuapp c
  • 为什么 Rails 应用程序在底部显示数据库信息?

    我创建了一个博客 每当我添加帖子时 帖子索引页面底部总会显示数据库中的记录列表 home html erb 像这样
  • 未知属性:user_id

    我在执行 current user stories build 期间收到错误未知属性 user id class User lt ActiveRecord Base has many stories class name Story for
  • Rails 3 分页,will_paginate 与 Kaminari

    我的设置 Rails 3 0 9 Ruby 1 9 2 我正在为我的应用程序寻找分页解决方案 发现有一个新的宝石Kaminari与值得信赖的人相比will paginate 看起来像will paginate有一段时间没有更新了 但后来又以
  • 为 Rails 上的 postgresql 创建用户

    我选择 postgresql 作为我的 Rails 数据库 但当我尝试运行 rake db create all 时 我遇到了一个明显常见的错误 即 致命 角色 app 不存在 我找到了两种解决方案 但我不确定哪一种是正确的 有一个网站说
  • 如何使用国家宝石

    我正在尝试使用国家宝石 https github com hexorx countries 但是在我捆绑安装这个 gem 后 有一些关于如何合并它的基本问题 我是否需要创建新的控制器 模型才能访问这些国家 地区 如何创建一个简单的选择下拉列
  • 我应该如何使用 alias_method_chain 作为构建方法?

    我正在使用 Ruby on Rails 3 2 13 我想正确使用alias method chain build option name声明 因为我收到一个奇怪的错误 那是 在我的控制器文件中我有 class Articles Comme
  • <%=h ... %> 在 Rails 中意味着什么?

    I found here http api rubyonrails org classes ActionView Helpers RecordTagHelper html以下语法 什么是h means 它用于转义标签的输出以避免跨站点脚本
  • Rails HABTM 设置、模型对象和 join_table 插入控制器设置

    我有以下设置 1 个产品有多个 Product types 许多 Product types 有 1 种类型 根据我对文档的理解 HABTM 关系 我的模型是 class Product lt ApplicationRecord has a
  • time_select 表单助手将新时间对象解释为 UTC,而不是配置的时区

    我遇到了对我来说似乎很简单的问题 但我无法弄清楚我做错了什么 在我的应用程序中 用户可以通过简单的 form for 添加他们的课程 他们可以输入课程讲座的开始时间和结束时间 如下所示 div class field Start Time
  • Rails content_for 和yield 之间有什么区别?

    例如 content for stuff vs yield stuff 我知道它们的实现略有不同 但是有任何真正的功能差异吗 是否有普遍接受的最佳实践 yield是您指定内容区域在布局中的位置的方式 你可能有这样的事情 div h1 Thi
  • 子域中的 Rails url 助手 - 删除子域

    我网站上的用户可以拥有子域 例如 他们的页面网址是 name example com 登录的用户可以查看更多用户信息 因此在用户的显示页面上 我有一个使用以下代码生成的链接 user url user subdomain gt false
  • SSL 与 Ruby on Rails

    我需要做什么才能让我的 Ruby on Rails 应用程序获得使用 https 的流量 我安装了证书 如果我在访问网站时在地址栏中手动输入 https 则会出现小锁图标 但只需在浏览器中手动访问 www example app com 即
  • 认为 Sphinx 没有为新添加的记录建立索引

    我正在使用 sphinx 搜索 2 个模型及其关联 我正在使用增量索引 在我的开发盒上 在开发模式 Ubuntu 下一切正常 但是 在暂存盒生产环境中 当我创建新记录时 我需要再次构建索引以使新创建的记录可搜索 甚至奇怪的是 当我使用脚本
  • HTTP 状态码 302

    我正在用 Ruby 开发 Rails 后端 并且想将数据发布到该服务器 但如果我用 PAW 发出后请求 我就会被重定向 我是 Http 请求的新手 有人可以向我解释一下功能以及如何使用 http post 请求吗 我想在我的服务器数据库 s
  • Rails 基本 Base64 身份验证

    我正在尝试复制此 GET curl 请求 curl D X GET H Authorization Basic dGVzdEB0YXByZXNlYXJjaC5jb206NGMzMTg2Mjg4YWUyM2ZkOTY2MWNiNWRmY2Nl
  • Rails CSS 样式表相互覆盖

    我在资产 样式表位置有一个clients css和jobs css 每个都有一个各自的控制器 乔布斯是在客户之后用脚手架创造出来的 scaffolds scss 文件为空 application css 为空 当我编码更改时 例如body

随机推荐

  • 自动代码签名 - 保护私钥

    我想要自动执行一些 ClickOnce 部署工件 应用程序 exe 和清单 的代码签名 我在用signtool http msdn microsoft com en us library windows desktop aa387764 2
  • Java 中前导零如何改变数字文字?

    我和我的朋友在看到它和答案后对Java中的这个说法感到困惑 这是如何运作的 System out printf d 077 等于63 077 is an octal number http en wikipedia org wiki Oct
  • 无法在舞台内跳过舞台

    我有一个阶段在一个阶段内 我想根据条件跳过它when pipeline agent any stages stage Dynamic stages steps script serverAStatus false def tests CLI
  • 如何判断一个对象的类?

    如果上课B和班级C扩展类A我有一个类型的对象B or C 我如何确定它是哪种类型的实例 if obj instanceof C your code
  • 我们是否可以在可能的情况下使用返回值优化,而在没有的情况下使用移动语义,而不是复制语义?

    是否可以编写 C 代码 在可能的情况下依赖返回值优化 RVO 而在不依赖返回值优化的情况下依赖移动语义 例如 以下代码由于条件原因无法使用 RVO 因此它将结果复制回来 include
  • 路由器链接不适用于共享模块内的组件

    我编写了一个名为 Customer 的模块 其中包含登录 主页和注册等多个组件 现在我创建了一个共享模块 它也有 2 个组件 例如页眉和页脚 由于页眉和页脚将由客户模块中的所有组件共享 因此我将它们放置在共享模块中 将共享模块导入到客户模块
  • Woocommerce Checkout 无法使用 WooCommerce 插件的无验证码 reCAPTCHA

    当我激活 No CAPTCHA reCAPTCHA for WooCommerce 插件时 因此在 WooCommerce 的结帐页面上 当客户检查 创建帐户 时复选框和下订单相比 它不起作用 页面只是滚动到顶部 没有任何操作 任何想法 问
  • 参考透明度

    当术语 不可观察 与函数式编程中的术语 引用透明 一起使用时 其含义是什么 您可能知道 术语 引用透明 意味着表达式的值只能依赖于values它的各个部分 而不是关于它们的任何其他事实 例如 它不能依赖于以下内容 表达式的某些部分是否已经被
  • 在Python中对嵌套列表数据进行排序

    我正在尝试对 python 3 8 5 中的嵌套列表进行排序 我有一个清单 例如 1 A 2 5 45 10 2 B 8 15 65 20 3 C 32 35 25 140 4 D 82 305 75 90 5 E 39 43 89 55
  • 如何添加图像以以编程方式查看?

    假设你有一个UIImage image and a UIView v 如何以编程方式在视图顶部显示图像 如果你只是想将 UIImage 添加到 UIView 中 那么你需要在 UIView 和 UIImage 之间添加一个 UIImageV
  • Symfony2:仅更新一个供应商包

    有没有一种方法可以只更新一个包而不更新 deps 文件中的每个包 我目前正在使用 php供应商安装 来安装所有供应商捆绑包 并且不知道有任何命令一次只更新一个捆绑包 1 只需打开你的 deps 文件 deps 2 删除除要更新的包之外的所有
  • 如何使用 python 在文本文件中添加新行而不使用 \n

    我有一个包含文件列表的文件 但它添加了 n最后我怎样才能让python只在新行上写下我需要的信息而不得到 n这样我的信息就会被调用X acc not x acc n 这是我写入文件的代码 def add x nl n acc acc xy
  • 队列管理器和消息代理之间的区别

    Websphere Message Broker 和队列管理器之间有什么区别 我猜队列管理器将消息放入队列 从队列中取出消息 将消息移动到回退队列等 那么代理的工作是什么 它位于发布者和队列管理器之间还是消费者和队列管理器之间 Websph
  • 无法单步执行或中断 Linq 查询/表达式内调用的方法

    我在尝试进入从 Linq 查询中调用的方法时遇到了一个奇怪的问题 尽管我在使用 Linq 表达式时也遇到了这个问题 代码可以编译 并且看起来可以工作 我得到了我期望的结果 IEnumerable
  • 在 WooCommerce 中使 +/- 加号和减号数量按钮以 12 为增量递增

    我一直在尝试解决我认为可能很容易解决的问题 但我似乎无法在任何地方找到任何信息 我的问题是这样的 我正在使用 WooCommerce 建立一个批发商店 并带有最小 最大数量和批发商店插件 我想展示一个简单的产品及其单一单价 没问题 但由于商
  • 如何从 3 个不同的整数(1 个 Oracle Long、1 个日期字段、1 个 Short)创建唯一的整数

    问题是 第一个数字已经是 ORACLE LONG 第二个是日期 SQL DATE 没有额外的时间戳信息 最后一个是 1000 100 000 范围内的 Short 值 如何以最佳方式创建每个组合唯一的哈希值 字符串连接并稍后转换为 例如 我
  • 使用 .htaccess 从 Apache 上的 CakePHP 2.x 中删除或添加尾部斜杠

    我正在尝试使用位于 htaccess 内的以下内容强制删除或添加尾随斜杠到我的 CakePHP 2 x 应用程序 app webroot
  • 用于包含 Jars 的 Jars 中的类的替换系统类加载器

    到目前为止 我看到的自定义 ClassLoader 的示例涉及对 URLClassLoader 进行子类化 并使用该特定实例来加载资源中的类 我徒劳地尝试寻找替代方法来替换 SystemClassLoader 以便可以在我的 ClassLo
  • 访问 R 中的嵌套列表

    我为一些数据创建了双层嵌套结构 我如何访问第 2 级 或第 n 级 的数据 library gapminder library purrr library tidyr gapminder nest data lt gapminder gt
  • 元内容位于 MVC 中的什么位置?

    我一直在考虑 MVC 中的元内容 特别是页面标题和元描述 这对于指导 Google 在搜索结果上显示的片段很有用 不过 我无法就它应该住在哪里做出明确的决定 它周围通常有一些逻辑 具体取决于 对于 UGC 应用程序 读者如何与内容交互 我无