我正在将网站从 Rails 2(最新)迁移到 Rails 3(beta2)。
使用Ruby 1.9.1p378和Ruby 1.9.2dev (2010-04-05 trunk 27225)进行测试
陷入困境,我不知道哪个部分会运作良好。怀疑yield
是问题,但不知道确切。
在我的布局文件中,我经常使用以下技术:
app/views/layouts/application.html.erb
:
<%= yield(:sidebar) || render('shared/sidebar') %>
例如,部分看起来像:
app/views/shared/_sidebar.html.erb
:
<p>Default sidebar Content. Bla Bla</p>
现在是关键部分的时候了!
在任何视图中,我都想创建一个content_for
块(可选)。这可以包含下面的 HTML 等示例。如果设置了这个块,里面的图片 HTML 应该呈现在application.html.erb
. 如果没有,Rails 应该在右侧
渲染 Partial 。shared/_sidebar.html.erb
app/views/books/index.html.erb
:
<% content_for :sidebar do %>
<strong>You have to read REWORK, a book from 37signals!</strong>
<% end %>
所以你有这个想法。希望。这种技术在任何 Rails 2.x 应用程序中都运行良好。
现在,在Rails 3 (beta2)中,只有yield
Part 工作。
|| render('shared/sidebar')
侧面不会通过or
导轨或红宝石处理。
感谢您的投入和时间!