`
hideto
  • 浏览: 2666765 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第六式: Symbol to Proc

    博客分类:
  • Ruby
阅读更多
这次来介绍ActiveSupport里对Symbol的扩展,我们先来看active_support/core_ext/symbol.rb文件:
class Symbol
  # Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:
  #
  #   # The same as people.collect { |p| p.name }
  #   people.collect(&:name)
  #
  #   # The same as people.select { |p| p.manager? }.collect { |p| p.salary }
  #   people.select(&:manager?).collect(&:salary)
  def to_proc
    Proc.new { |*args| args.shift.__send__(self, *args) }
  end
end

原来&符号用在symbol前面实际上是调用了to_proc方法,而to_proc里返回一个Proc对象,内部为调用symbol指定的方法
结合例子来说,就是:
people.map { |p| p.name }
等价于
people.map(&:name)

即,&:name实际上调用了每个people对象的name方法,这样对对象的任意public方法我们都可以使用&+symbol来调用
分享到:
评论

相关推荐

    Rails的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。

    to_xls-rails:将Rails ActiveRecord或Mongid数据导出到Excel文件

    这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem # gem "to_xls-rails", :git => ...

    Advanced Rails

    6. **部署与维护**:了解如何在各种环境中部署Rails应用,包括Heroku、AWS、Docker等。学习如何进行版本控制、配置管理、日志记录和监控。 7. **Rails插件与Gem**:Rails社区提供了丰富的插件和Gem,如Devise用于...

    rails5-docker-alpine:使用Alpine Linux的Rails轻量级Docker开发环境

    rails5-docker-alpine:使用Alpine Linux的Rails轻量级Docker开发环境

    Rails相关电子书汇总

    11. **Rails Console**:提供了一个交互式的Ruby环境,便于开发者调试和实验代码。 12. **Rails API模式**:Rails 4引入了API模式,使得构建RESTful JSON接口变得更加简单。 13. **Webpacker和Webpack**:Rails ...

    [Rails] Crafting Rails Applications (英文版)

    This pioneering book is the first resource that deep dives into the new Rails 3 APIs and shows you how use them to write better web applications and make your day-to-day work with Rails more ...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    Ruby on Rails入门经典代码

    6. **Rails开发工具**: - Bundler:管理Gem依赖,确保项目依赖的一致性。 - Rails Console:交互式的命令行环境,用于调试和测试代码。 - Rails Server:启动本地开发服务器。 7. **Rails最佳实践**: - ...

    rails_admin_enum4:Rails Admin Rails 4.1枚举

    Rails Admin枚举4 Rails Admin插件,用于正确查看Rails 4.1枚举 安装 gem 'rails_admin_enum4', github: 'sibext/rails_admin_enum4' bundle install 用法 通过生成器生成新模型: rails g model Sibext service:...

    Ruby+on+Rails快速Web应用开发实战.pdf

    Rails在2005年发布第一个稳定版本1.0.0。 - **Rails的版本迭代**:文档中提到的v1.0.0是Rails早期的一个版本,而Rails 2.3.2和Rails 2.5是后续更迭的版本。 - **Rails的主要特性**:Rails采用了约定优于配置...

    For-Rails-Beginners::Japanese_symbol_for_beginner:Ruby on Rails的初学者有福了

    10. **Rails Console和Rails Server**:Rails console允许开发者在命令行环境中交互式地运行Ruby代码,而Rails server则启动应用,使得可以在浏览器中查看和测试应用。 在"For-Rails-Beginners"这个资源中,你可能...

    java基础之rails命令大全.pdf

    ### Java基础之Rails命令大全知识点解析 #### 一、Rails 命令概述 Rails 是一个用于 Web 开发的框架,它基于 Ruby 语言。Rails 遵循 MVC(Model-View-Controller)架构模式,使得 Web 应用程序的开发更加高效、简洁...

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成.zip

    webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...

    to_csv-rails:导出到 csv 文件

    导出为CSV on Rails的 这个简单的插件使您能够调用 to_csv 到一系列活动记录。 除了 :include 之外,构建器选项与 to_json / to_xml 相同。入门 在您的 Gemfile 中: gem 'to_csv-rails' # Last officially released...

    rails有用的命令

    - `$ rails c` 或 `$ rails console`:启动Rails控制台,进行交互式编程。 - `$ rails server -p 3001`:在端口3001启动服务器。 - `$ rake doc:rails`:生成Rails API文档。 - `$ rails dbconsole`:打开数据库...

Global site tag (gtag.js) - Google Analytics