ruby-on-rails - 给对象发送方法另一个方法 block

标签 ruby-on-rails ruby metaprogramming

这个有效:

Beer.all.send(:sort)

它也适用于 block :

Beer.all.sort_by{|b| b.name}
Beer.all.sort_by(&:name)

但是当我像这样给发送方法一个可执行 block 时:

Beer.all.send(:sort_by{|b| b.name})
Beer.all.send(:sort_by(&:name))

我收到语法错误。在 Ruby 中是否有任何替代方法来为发送方法提供可执行 block ?

最佳答案

你应该尝试这样的事情:

Beer.all.send(:sort_by) {|b| b.name}

关于ruby-on-rails - 给对象发送方法另一个方法 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28630189/

相关文章:

ruby-on-rails - 检查电子邮件地址是否基于 Google

ruby - 元编程 sinatra get

jquery - 如何在 jquery_ujs 响应中的 Javascript ERB 模板中调用 Coffeescript 模板?

ruby-on-rails - 使用 `:has_many :through` 记录关联处理复选框表单

ruby-on-rails - 自定义 Devise 注册编辑/更新路径和 View

ruby-on-rails - 使用基本身份验证从 url 下载文件的 ruby​​ 代码

ruby-on-rails - rails : Link_to raw (' ' ) when adding to another element

ruby-on-rails - 为什么在测试 RSPEC 时 JBuilder 不返回 JSON 中的响应正文

ruby - 在不同的上下文中使用方法,instance_eval 添加不需要的参数

c++ - 在 C++11 中将 std::function/mem_fn 与成员函数一起使用