【发布时间】:2015-11-03 22:41:40
【问题描述】:
rails/delegation.rb at v4.2.4 · rails/rails
delegate :to_xml, :to_yaml, :length, :collect, :map, :each, :all?, :include?, :to_ary, :join, to: :to_a
断点此行
to_a
=> undefined local variable or method `to_a' for ActiveRecord::Delegation:Module
rails 启动后断点立即停止。
委托方法文档(评论)说
rails/delegation.rb at 7b92798d2fee012bf683c513fb3864a9143a6f71 · rails/rails
# 方法可以委托给实例变量、类变量或常量
# 通过将它们作为符号提供:
delegate 运行module_eval(method_def, file, line)
rails/delegation.rb at 7b92798d2fee012bf683c513fb3864a9143a6f71 · rails/rails
module_eval(method_def, file, line)
断点此行
method_def
=> "def each(*args, &block); _ = to_a; _.each(*args, &block);rescue NoMethodError => e; if _.nil? && e.name == :each; raise DelegationError, \"ActiveRecord::Delegation#each delegated to to_a.each, but to_a is nil: \#{self.inspect}\"; else; raise; end;end"
什么是to_a?
【问题讨论】:
-
你的问题到底是什么?
-
to_a => undefined ...但是Ruby可以to_a在Enumerable中吗?
-
欢迎来到 Stack Overflow。请不要使用任意粗体文本。这就像输入所有大写字母一样糟糕。
to_a是对象的基本构建块,继承自 Enumerable。也许您需要通读各种核心类的文档?此外,作为一个问题,您的标题也应该是您问题的第一行。 "How to Ask"
标签: ruby-on-rails ruby activerecord