原来下面不是我需要的一个很好的描述。通过所有这些研究,我已经弄清楚如何提出我应该提出的问题。新帖子:这里。留下这个问题,以防它有利于别人。
我正在构建一个激活了多个“博客”的站点,并且在某些情况下,能够获取blog.prefix
from之类的内容会很有用config.rb
。我知道您可以通过set
变量和使用实例变量,config.rb
但这意味着在模板中我必须知道我所在的博客不能解决我的问题。(我想要所有博客的布局,而不是每个博客的重复布局。)
有没有办法我可以从中获取blog.prefix
和其他激活变量config.rb
并在如下布局中使用它:
<p>The blog prefix is: <%= blog.prefix %></p>
更新
我已经尝试在page do
块中传递实例变量,以及在渲染页面时使用locals => { :variable = value }
和两者都导致。Error: cannot find _auto_layout
我最初在中间人论坛上发布了这个,但 Stackoverflow 倾向于关注它。:-D
更新 2
如果我必须为每个变量设置一个单独的变量(例如blog1_prefix
、blog2_prefix
和blog3_prefix
),那么我必须知道我从模板中调用了哪个变量。我需要模板来知道它为哪个博客获取前缀(或其他)。
在我的config.rb
我有一个看起来像这样的块:
my_blogs = ["blog1", "blog2", "blog3"]
my_blogs.each do |my_blog|
activate :blog do |blog|
blog.prefix = my_blog
end
end
有没有一种方法可以设置一个变量,让布局知道它正在被调用哪个博客,这样我就可以像上面的例子一样做一些事情:
<p>The blog prefix is: <%= blog.prefix %></p>
这将从一个布局呈现在三个博客中的每一个上:
<p>The blog prefix is: blog1</p>
<p>The blog prefix is: blog2</p>
<p>The blog prefix is: blog3</p>