gpt4 book ai didi

ruby-on-rails - Rails 部分模板中的可选局部变量 : how do I get out of the (defined? foo) 困惑?

转载 作者:行者123 更新时间:2023-12-03 04:08:21 25 4
gpt4 key购买 nike

我是个坏 child ,如果在渲染部分时未在 :locals 哈希中显式定义值,我会在部分模板中使用以下语法来设置局部变量的默认值 --

<% foo = default_value unless (defined? foo) %>

直到最近,这似乎工作得很好,当时(我无法辨别)未传递的变量开始表现得好像它们已被定义为 nil (而不是未定义)。

正如各种有帮助的人所指出的那样,http://api.rubyonrails.org/classes/ActionView/Base.html使用

defined? foo

而不是使用

local_assigns.has_key? :foo

我正在尝试修改我的方式,但这意味着更改很多模板。

我可以/应该提前在所有模板中进行此更改吗?有什么需要注意的技巧吗?我需要多努力地测试每一项?

最佳答案

我这样做:

<% some_local = default_value if local_assigns[:some_local].nil? %>

关于ruby-on-rails - Rails 部分模板中的可选局部变量 : how do I get out of the (defined? foo) 困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2060561/

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