【发布时间】:2016-02-09 03:03:58
【问题描述】:
我想知道有效地将数据从控制器发送到布局的最佳方法是什么。通常,我使用带有 yield 指令的布局来呈现页面。所以这是我的布局
<!DOCTYPE HTML>
<html lang="en">
<head>
<%= yield(:title) %>
</head>
<body>
<%= yield %>
</body>
</html>
和视图文件
<% content_for :title do %>
<title><%= @title %></title>
<% end %>
<section id="page-body">
<!-- CONTENT GOES HERE -->
</section>
使用这种方法,我必须在控制器中在其视图中需要@title 数据的每个方法中定义@title 实例变量。
真正的问题是我的标题和其他元数据存储在数据库中,因为视图使用相同的布局文件。所以我认为标题和关键字等这些数据不应该被加载得太频繁(至少,不是在每个方法中),也不应该在每个视图中声明 content_for。
那么布局有没有办法直接从控制器访问这些数据呢?不使用 content_for
谢谢
【问题讨论】:
标签: ruby-on-rails