【发布时间】:2017-09-21 00:05:40
【问题描述】:
我正在尝试了解 Rails 控制器的以下方法
def self.collect_with_max_id(collection=[], max_id=nil, &block)
response = yield(max_id)
collection += response
response.empty? ? collection.flatten : collect_with_max_id(collection, response.last.id - 1, &block)
end
当尝试使用 byebug 调试方法时,我得到所有对象集合和 max_id 的值: 我被困在这部分
response = yield(max_id)
虽然 max_id 为 552860227390144512,但在调用响应变量时,我只是得到一个空数组 [],它似乎破坏了整个方法。
有人可以在这种情况下解释收益率函数吗?我现在才从 ror 中渲染视图和块。
【问题讨论】:
标签: ruby-on-rails ruby yield