首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 2对Rails 3

Rails 2对Rails 3
EN

Stack Overflow用户
提问于 2013-06-27 08:25:02
回答 1查看 93关注 0票数 3

我正在将一个rails 2应用程序迁移到rails 3。在此过程中,我遇到了一种屈服的行为。我有一个代码片段,在这里我获得了收益率的返回值。

代码语言:javascript
复制
x= true if yield 'xyz'

因此,如果content_for存在于“xyz”,那么x的值将设置为true,否则什么都不会发生。它在rails 2中运行良好,但在rails 3中,总是true设置为x,因为rails返回一个空字符串,即使“xyz”不可用

在Rails 2中:

代码语言:javascript
复制
yield 'xyz' # nil if xyz is not available
yield 'xyz' # "hi" if xyz is available. "hi" is the rendered content

Rails 3中:

代码语言:javascript
复制
yield 'xyz' # "" if xyz is not available
yield 'xyz' # "hi" if xyz is available. "hi" is the rendered content

为什么会有这种变化?render_template已经完全改变了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-27 11:35:25

我不能回答你的问题,但我建议采用以下方法:

代码语言:javascript
复制
if content_for?(:xyz)
  yield(:xyz)
  x = true
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17338223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档