我正在从Rails 2(最新版本)迁移到Rails 3(beta2)。
测试与红宝石1.9.1p378和红宝石1.9.2dev(2010-04-05干线27225)Rails 3 - yield return或callback不会在视图中调用<%= yield(:sidebar)|| render('shared/sidebar')%>
的情况下卡住了,我不知道哪一部分将工作做好。怀疑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等例子。如果设置了此块,则内部的pice HTML应呈现在application.html.erb
中。
如果没有,Rails应在右边显示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
部分工作。
|| render('shared/sidebar')
or
方不会通过rails或ruby处理。
感谢您的输入和时间!
这是这么脏 – 2010-09-17 03:40:37