首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将参数传递给回调块

将参数传递给回调块
EN

Stack Overflow用户
提问于 2015-05-29 09:23:02
回答 1查看 50关注 0票数 0

我正在为我正在做的宝石写一个简单的回调。请注意,由于某些体系结构的限制,我不能使用ActiveSupport define_callbacks方法来处理这个特定情况。

现在,我有这样的事情:

代码语言:javascript
复制
def self.after_data_transcoding(&block)
  define_method :_after_data_transcoding_callback { block.call }
end

因此,用例类似于以下内容:

代码语言:javascript
复制
class MyClass
  after_data_transcoding do
  end
end

实际调用由instance.send(:_after_data_transcoding_callback)完成。

到目前为止,代码工作得很好。我希望更进一步,并能够以块参数的形式访问响应:

代码语言:javascript
复制
class MyClass
  after_data_transcoding do |response|
    # Do something with the response
  end
end

然而,我并没有取得多少成功。对我该怎么做有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-29 09:57:40

结果发现这比我想象的要容易。

代码语言:javascript
复制
define_method(:_after_data_transcoding_callback) { |response| 
  block.call(response) 
}

instance.send(:_after_data_transcoding_callback, response)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30525845

复制
相关文章

相似问题

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