ruby-on-rails - 任何人都可以解释这段 ruby​​ 代码中 '&' 的使用吗?

标签 ruby-on-rails ruby rails-activerecord

<分区>

任何人都可以解释这段 ruby​​ 代码中“&”的使用吗?

s.feature_addons.select(&:is_active?)

最佳答案

意思是:

s.feature_addons.select { |addon| addon.is_active? }

& 调用对象上的 to_proc,并将其作为 block 传递给方法。

class Symbol
  def to_proc
    Proc.new { |*args| args.shift.__send__(self, *args) }
  end
end

您可以在其他类中定义to_proc 方法:Examples

关于ruby-on-rails - 任何人都可以解释这段 ruby​​ 代码中 '&' 的使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19174350/

相关文章:

ruby-on-rails - 如果其中一个数据库更新失败,rails db 事务不会回滚

ruby-on-rails - 使用 ActiveRecord 时 Rails 日志的格式

ruby-on-rails - 如何防止 mina 删除生产服务器上上传的图片?

java - ruby 中是否有一些像 java httpclient 这样的库

通过 RVM 的 Ruby 失败

ruby-on-rails - 关联的 Rails 未初始化常量

ruby-on-rails - Gitlab-CI 和 Gem 公寓

ruby-on-rails - 使用自定义命名路由的 Rails 3 "No Route Matches"错误

ruby - 如何修复(RubyInstaller::Runtime::DllDirectory::WinApiError) in ruby on windows?

ruby-on-rails - Rails 范围为 null 或为空?