ruby-on-rails - Ruby on Rails "content_for :title"如何获得稍后分配的内容?

标签 ruby-on-rails ruby-on-rails-3

简单的问题是:子页面如何

<% content_for :title do 'Showing product' end %>

设置 :title主要布局?

<小时/>

详情:

我们可以在应用布局中使用application.html.erb

<title><%= content_for :title %>
  ...
  <%= yield %>

我认为yield返回子页面的内容,例如来自 show.html.erb ,其中包含:

<% content_for :title do 'Showing product' end %>

如何:title以某种方式被 yield 以上的东西所使用?我以为title首先评估部分,然后评估 yield ,那么:title怎么能呢?追溯设置<title>的内容标签?

最佳答案

简短回答:通过作弊。

长答案:ActionView 重新定义了产量,因此它与我们所了解和喜爱的优秀 Ruby 的产量不同。事实上,模板文件是在布局文件之前渲染的,然后布局文件中的yield将被已经渲染的模板替换。 content_for block 保存到类变量中,以便您稍后可以从布局中访问它们。

关于ruby-on-rails - Ruby on Rails "content_for :title"如何获得稍后分配的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4118988/

相关文章:

ruby-on-rails-3 - 即使使用 config.render_views,RSpec response.body 仍然是空的

ruby-on-rails - ActiveAdmin - 创建新记录的自定义操作(缺少必需的 key : :id)

ruby-on-rails - 将 Carrierwave 迁移到 ActiveStorage

javascript - 如何在 ruby​​ on rails 中为复选框设置值?

ruby-on-rails-3 - 如何在Rails控制台中加载环境变量?

ruby - 没有这样的文件要加载——memcache 但它已安装?

ruby-on-rails - Rails,与父对象一起创建关联记录?

ruby-on-rails - 使用 AWS Elasticache 在 Rails 应用程序中运行 Sidekiq

ruby-on-rails - 如何实现一个基于订阅的DB,比如basecamp

ruby-on-rails - Ruby/Rails - 在不建模的情况下访问 "lookup"表?