首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ActiveSupport::Dependencies#load()重写‘`load`’属性

ActiveSupport::Dependencies#load()重写‘`load`’属性
EN

Stack Overflow用户
提问于 2013-10-28 15:15:54
回答 1查看 86关注 0票数 0

...in也是一种奇怪的一致方式。

我有几个带有load属性的模型。当我弹出一个控制台会话或reload!时,在任何load调用上都会看到相同的ArgumentError,直到我在任何具有load属性的其他模型实例上调用anything 为止:

代码语言:javascript
运行
复制
Work.new.load
# => ArgumentError: wrong number of arguments (0 for 1..2)
# from gems/activesupport-4.0.0/lib/active_support/dependencies.rb:220:in `load'
Butt.new.load
# => ArgumentError: wrong number of arguments (0 for 1..2)
# from gems/activesupport-4.0.0/lib/active_support/dependencies.rb:220:in `load'
Work.new.class  # or even Work.new.nonexistant_method
# => Work
Work.new.load
# => nil
Butt.new.load
# => nil

我用这个荒谬的黑客解决了问题:

代码语言:javascript
运行
复制
after_initialize :fix_load_nonsense
def fix_load_nonsense; end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-17 19:34:27

#load是Ruby的核模块中的一种方法。因为Kernel包含在类Object中,所以#load方法在每个#load对象中都是可用的。覆盖它是潜在的危险,因此不应该使用#load作为属性的名称。

我相信有关ArgumentError的问题发生在干净的内存空间中,原因是开发控制台的自动加载行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19638520

复制
相关文章

相似问题

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