【发布时间】:2015-09-02 23:08:55
【问题描述】:
当我在调试BasicObject#method_missing(我有一个No Id Given 错误)时,我得出的结论是rb_method_missing(int argc, const VALUE *argv, VALUE obj) 的第一个参数映射到一个方法名称(在:symbol.object_id 的帮助下)。
我想检查一下,所以我在 rails 控制台(Rails 4.2/Ruby 2.2)中输入了:symbol.object_id:
:symbol.object_id
# => 771548
然后我签入了 IRB(Ruby 2.2):
:symbol.object_id
# => 771548
一切看起来都很棒。我在 IRB 试过:
:michał_kulesza.object_id
# => 2531228
然后在 Rails 控制台中:
:michał_kulesza.object_id
# => 7816668
为什么:symbol 在这两种情况下都有相同的object_id 而:michał_kulesza 却有不同的情况?
【问题讨论】:
标签: ruby-on-rails ruby irb