gpt4 book ai didi

ruby-on-rails - yield Rails 2 vs Rails 3

转载 作者:行者123 更新时间:2023-12-04 05:34:48 25 4
gpt4 key购买 nike

我当时正在将Rails 2应用程序迁移到Rails3。在执行此操作时,我遇到了产量异常变化的情况。
我有一个代码片段,我在其中获得yield的返回值。

x= true if yield 'xyz'


因此,如果存在针对“ xyz”的content_for,则x的值将设置为true,否则不会发生任何事情。它在rails 2上运行良好。但是在rails 3中,始终将true设置为x,因为即使'xyz'不可用,rails也会返回一个空字符串。

在Rails 2中:

yield 'xyz' # nil if xyz is not available
yield 'xyz' # "hi" if xyz is available. "hi" is the rendered content


在Rails 3中:

yield 'xyz' # "" if xyz is not available
yield 'xyz' # "hi" if xyz is available. "hi" is the rendered content


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

最佳答案

我无法回答您的问题,但建议您使用以下方法:

if content_for?(:xyz)
yield(:xyz)
x = true
end

关于ruby-on-rails - yield Rails 2 vs Rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17338223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com