Contents

Foreword by David Heinemeier Hansson

Foreword by Yehuda

Introduction

Acknowledgments

About the Author

Chapter 1. Rails Environments and Configuration

1.1 Bundler

1.1.1 Gemfile

1.1.2 Installing Gems

1.1.3 Gem Locking

1.1.4 Packaging Gems

1.2 Startup and Application Settings

1.2.1 application.rb

1.2.2 Initializers

1.2.3 Additional Configuration

1.3 Development Mode

1.3.1 Automatic Class Reloading

1.3.2 Whiny Nils

1.3.3 Error Reports

1.3.4 Caching

1.3.5 Raise Delivery Errors

1.4 Test Mode

1.5 Production Mode

1.5.1 Asset Hosts

1.5.2 Threaded Mode

1.6 Logging

1.6.1 Rails Log Files

1.6.2 Log File Analysis

1.7 Conclusion

Chapter 2. Routing

2.1 The Two Purposes of Routing

2.2 The routes.rb File

2.2.1 Regular Routes

2.2.2 URL Patterns

2.2.3 Segment Keys

2.2.4 Spotlight on the :id Field

2.2.5 Optional Segment Keys

2.2.6 Constraining Request Methods

2.2.7 Redirect Routes

2.2.8 The Format Segment

2.2.9 Routes as Rack Endpoints

2.2.10 Accept Header

2.2.11 Segment Key Constraints

2.2.12 The Root Route

2.3 Route Globbing

2.4 Named Routes

2.4.1 Creating a Named Route

2.4.2 name path vs. name url

2.4.3 What to Name Your Routes

2.4.4 Argument Sugar

2.4.5 A Little More Sugar with Your Sugar?

2.5 Scoping Routing Rules

2.5.1 Controller

2.5.2 Path Prefix

2.5.3 Name Prefix

2.5.4 Namespaces

2.5.5 Bundling Constraints

2.6 Listing Routes

2.7 Conclusion

Chapter 3. REST, Resources, and Rails

3.1 REST in a Rather Small Nutshell

3.2 Resources and Representations

3.3 REST in Rails

3.4 Routing and CRUD

3.4.1 REST Resources and Rails

3.4.2 From Named Routes to REST Support

3.4.3 Reenter the HTTP Verb

3.5 The Standard RESTful Controller Actions

3.5.1 Singular and Plural RESTful Routes

3.5.2 The Special Pairs: new/create and edit/update

3.5.3 The PUT and DELETE Cheat

3.5.4 Limiting Routes Generated

3.6 Singular Resource Routes

3.7 Nested Resources

3.7.1 RESTful Controller Mappings

3.7.2 Considerations

3.7.3 Deep Nesting?

3.7.4 Shallow Routes

3.8 RESTful Route Customizations

3.8.1 Extra Member Routes

3.8.2 Extra Collection Routes

3.8.3 Custom Action Names

3.8.4 Mapping to a Different Controller

3.8.5 Routes for New Resources

3.8.6 Considerations for Extra Routes

3.9 Controller-Only Resources

3.10 Different Representations of Resources

3.10.1 The respond_to Method

3.10.2 Formatted Named Routes

3.11 The RESTful Rails Action Set

3.11.1 Index

3.11.2 Show

3.11.3 Destroy

3.11.4 New and Create

3.11.5 Edit and Update

3.12 Conclusion

Chapter 4. Working with Controllers

4.1 Rack

4.1.1 Configuring Your Middleware Stack

4.2 Action Dispatch: Where It All Begins

4.2.1 Request Handling

4.2.2 Getting Intimate with the Dispatcher

4.3 Render unto View ...

4.3.1 When in Doubt, Render

4.3.2 Explicit Rendering

4.3.3 Rendering Another Action’s Template

4.3.4 Rendering a Different Template Altogether

4.3.5 Rendering a Partial Template

4.3.6 Rendering Inline Template Code

4.3.7 Rendering Text

4.3.8 Rendering Other Types of Structured Data

4.3.9 Rendering Nothing

4.3.10 Rendering Options

4.4 Additional Layout Options

4.5 Redirecting

4.5.1 The redirect_to Method

4.6 Controller/View Communication

4.7 Filters

4.7.1 Filter Inheritance

4.7.2 Filter Types

4.7.3 Filter Chain Ordering

4.7.4 Around Filters

4.7.5 Filter Chain Skipping

4.7.6 Filter Conditions

4.7.7 Filter Chain Halting

4.8 Verification

4.8.1 Example Usage

4.8.2 Options

4.9 Streaming

4.9.1 Via render :text => proc

4.9.2 send_data(data, options = {})

4.9.3 send_file(path, options = {})

4.10 Conclusion

Chapter 5. Working with Active Record

5.1 The Basics

5.2 Macro-Style Methods

5.2.1 Relationship Declarations

5.2.2 Convention over Configuration

5.2.3 Setting Names Manually

5.2.4 Legacy Naming Schemes

5.3 Defining Attributes

5.3.1 Default Attribute Values

5.3.2 Serialized Attributes

5.4 CRUD: Creating, Reading, Updating, Deleting

5.4.1 Creating New Active Record Instances

5.4.2 Reading Active Record Objects

5.4.3 Reading and Writing Attributes

5.4.4 Accessing and Manipulating Attributes Before They Are Typecast

5.4.5 Reloading

5.4.6 Cloning

5.4.7 Dynamic Attribute-Based Finders

5.4.8 Dynamic Scopes

5.4.9 Custom SQL Queries

5.4.10 The Query Cache

5.4.11 Updating

5.4.12 Updating by Condition

5.4.13 Updating a Particular Instance

5.4.14 Updating Specific Attributes

5.4.15 Convenience Updaters

5.4.16 Touching Records

5.4.17 Controlling Access to Attributes

5.4.18 Readonly Attributes

5.4.19 Deleting and Destroying

5.5 Database Locking

5.5.1 Optimistic Locking

5.5.2 Pessimistic Locking

5.5.3 Considerations

5.6 Where Clauses

5.6.1 where(*conditions)

5.6.2 order(*clauses)

5.6.3 limit(number) and offset(number)

5.6.4 select(*clauses)

5.6.5 from(*tables)

5.6.6 group(*args)

5.6.7 having(*clauses)

5.6.8 includes(*associations)

5.6.9 joins

5.6.10 readonly

5.6.11 exists?

5.6.12 arel_table

5.7 Connections to Multiple Databases in Different Models

5.8 Using the Database Connection Directly

5.8.1 The DatabaseStatements Module

5.8.2 Other Connection Methods

5.9 Other Configuration Options

5.10 Conclusion

Chapter 6. Active Record Migrations

6.1 Creating Migrations

6.1.1 Sequencing Migrations

6.1.2 Irreversible Migrations

6.1.3 create_table(name, options, & block)

6.1.4 change_table(table_name, & block)

6.1.5 API Reference

6.1.6 Defining Columns

6.1.7 Command-line Column Declarations

6.2 Data Migration

6.2.1 Using SQL

6.2.2 Migration Models

6.3 schema.rb

6.4 Database Seeding

6.5 Database-Related Rake Tasks

6.6 Conclusion

Chapter 7. Active Record Associations

7.1 The Association Hierarchy

7.2 One-to-Many Relationships

7.2.1 Adding Associated Objects to a Collection

7.2.2 Association Collection Methods

7.3 The belongs_to Association

7.3.1 Reloading the Association

7.3.2 Building and Creating Related Objects via the Association

7.3.3 belongs_to Options

7.4 The has_many Association

7.4.1 has_many Options

7.5 Many-to-Many Relationships

7.5.1 has_and_belongs_to_many

7.5.2 has_many :through

7.5.3 has_many :through Options

7.6 One-to-One Relationships

7.6.1 has_one

7.7 Working with Unsaved Objects and Associations

7.7.1 One-to-One Associations

7.7.2 Collections

7.7.3 Deletion

7.8 Association Extensions

7.9 The AssociationProxy Class

7.10 Conclusion

Chapter 8. Validations

8.1 Finding Errors

8.2 The Simple Declarative Validations

8.2.1 validates_acceptance_of

8.2.2 validates_associated

8.2.3 validates_confirmation_of

8.2.4 validates_each

8.2.5 validates_format_of

8.2.6 validates_inclusion_of and validates_exclusion_of

8.2.7 validates_length_of

8.2.8 validates_numericality_of

8.2.9 validates_presence_of

8.2.10 validates_uniqueness_of

8.2.11 validates_with

8.2.12 RecordInvalid

8.3 Common Validation Options

8.3.1 :allow_blank and :allow_nil

8.3.2 :if and :unless

8.3.3 :message

8.3.4 :on

8.4 Conditional Validation

8.4.1 Usage and Considerations

8.4.2 Validation Contexts

8.5 Short-form Validation

8.6 Custom Validation Techniques

8.6.1 Add Custom Validation Macros to Your Application

8.6.2 Create a Custom Validator Class

8.6.3 Add a validate Method to Your Model

8.7 Skipping Validations

8.8 Working with the Errors Hash

8.8.1 Checking for Errors

8.9 Testing Validations with Shoulda

8.10 Conclusion

Chapter 9. Advanced Active Record

9.1 Scopes

9.1.1 Scope Parameters

9.1.2 Chaining Scopes

9.1.3 Scopes and has_many

9.1.4 Scopes and Joins

9.1.5 Scope Combinations

9.1.6 Default Scopes

9.1.7 Using Scopes for CRUD

9.2 Callbacks

9.2.1 Callback Registration

9.2.2 One-Liners

9.2.3 Protected or Private

9.2.4 Matched before/after Callbacks

9.2.5 Halting Execution

9.2.6 Callback Usages

9.2.7 Special Callbacks: after_initialize and after_find

9.2.8 Callback Classes

9.3 Calculation Methods

9.3.1 average(column_name, *options)

9.3.2 count(column_name, *options)

9.3.3 maximum(column_name, *options)

9.3.4 minimum(column_name, *options)

9.3.5 sum(column_name, *options)

9.4 Observers

9.4.1 Naming Conventions

9.4.2 Registration of Observers

9.4.3 Timing

9.5 Single-Table Inheritance (STI)

9.5.1 Mapping Inheritance to the Database

9.5.2 STI Considerations

9.5.3 STI and Associations

9.6 Abstract Base Model Classes

9.7 Polymorphic has_many Relationships

9.7.1 In the Case of Models with Comments

9.8 Foreign-key Constraints

9.9 Using Value Objects

9.9.1 Immutability

9.9.2 Custom Constructors and Converters

9.9.3 Finding Records by a Value Object

9.10 Modules for Reusing Common Behavior

9.10.1 A Review of Class Scope and Contexts

9.10.2 The included Callback

9.11 Modifying Active Record Classes at Runtime

9.11.1 Considerations

9.11.2 Ruby and Domain-Specific Languages

9.12 Conclusion

Chapter 10. Action View

10.1 Layouts and Templates

10.1.1 Template Filename Conventions

10.1.2 Layouts

10.1.3 Yielding Content

10.1.4 Conditional Output

10.1.5 Decent Exposure

10.1.6 Standard Instance Variables

10.1.7 Displaying flash Messages

10.1.8 flash.now

10.2 Partials

10.2.1 Simple Use Cases

10.2.2 Reuse of Partials

10.2.3 Shared Partials

10.2.4 Passing Variables to Partials

10.2.5 Rendering Collections

10.2.6 Logging

10.3 Conclusion

Chapter 11. All About Helpers

11.1 ActiveModelHelper

11.1.1 Reporting Validation Errors

11.1.2 Automatic Form Creation

11.1.3 Customizing the Way Validation Errors Are Highlighted

11.2 AssetTagHelper

11.2.1 Head Helpers

11.2.2 Asset Helpers

11.2.3 Using Asset Hosts

11.2.4 Using Asset Timestamps

11.2.5 For Plugins Only

11.3 AtomFeedHelper

11.4 CacheHelper

11.5 CaptureHelper

11.6 DateHelper

11.6.1 The Date and Time Selection Helpers

11.6.2 The Individual Date and Time Select Helpers

11.6.3 Common Options for Date Selection Helpers

11.6.4 distance_in_time Methods with Complex Descriptive Names

11.7 DebugHelper

11.8 FormHelper

11.8.1 Creating Forms for Models

11.8.2 How Form Helpers Get Their Values

11.8.3 Integrating Additional Objects in One Form

11.8.4 Customized Form Builders

11.8.5 Form Inputs

11.9 FormOptionsHelper

11.9.1 Select Helpers

11.9.2 Option Helpers

11.10 FormTagHelper

11.11 JavaScriptHelper

11.12 NumberHelper

11.13 PrototypeHelper

11.14 RawOutputHelper

11.15 RecordIdentificationHelper

11.16 RecordTagHelper

11.17 SanitizeHelper

11.18 TagHelper

11.19 TextHelper

11.20 TranslationHelper and the I18n API

11.20.1 Localized Views

11.20.2 TranslationHelper Methods

11.20.3 I18n Setup

11.20.4 Setting and Passing the Locale

11.20.5 Setting Locale from Client Supplied Information

11.20.6 Internationalizing Your Application

11.20.7 Organization of Locale Files

11.20.8 Looking Up Translations

11.20.9 How to Store Your Custom Translations

11.20.10 Overview of Other Built-In Methods that Provide I18n Support

11.20.11 Exception Handling

11.21 UrlHelper

11.22 Writing Your Own View Helpers

11.22.1 Small Optimizations: The Title Helper

11.22.2 Encapsulating View Logic: The photo_for Helper

11.22.3 Smart View: The breadcrumbs Helper

11.23 Wrapping and Generalizing Partials

11.23.1 A tiles Helper

11.23.2 Generalizing Partials

11.24 Conclusion

Chapter 12. Ajax on Rails

12.0.1 Changes in Rails 3

12.0.2 Firebug

12.1 Unobtrusive JavaScript

12.1.1 UJS Usage

12.2 Writing JavaScript in Ruby with RJS

12.2.1 RJS Templates

12.2.2 <<(javascript)

12.2.3 [](id)

12.2.4 alert(message)

12.2.5 call(function, *arguments, & block)

12.2.6 delay(seconds = 1) ...

12.2.7 draggable(id, options = {})

12.2.8 drop_receiving(id, options = {})

12.2.9 hide(*ids)

12.2.10 insert_html(position, id, *options_for_render)

12.2.11 literal(code)

12.2.12 redirect_to(location)

12.2.13 remove(*ids)

12.2.14 replace(id, *options_for_render)

12.2.15 replace_html(id, *options_for_render)

12.2.16 select(pattern)

12.2.17 show(*ids)

12.2.18 sortable(id, options = {})

12.2.19 toggle(*ids)

12.2.20 visual_effect(name, id = nil, options = {})

12.3 Ajax and JSON

12.3.1 Ajax link_to

12.4 Ajax and HTML

12.5 Ajax and JavaScript

12.6 Conclusion

Chapter 13. Session Management

13.1 What to Store in the Session

13.1.1 The Current User

13.1.2 Session Use Guidelines

13.2 Session Options

13.3 Storage Mechanisms

13.3.1 Active Record Session Store

13.3.2 Memcache Session Storage

13.3.3 The Controversial CookieStore

13.3.4 Cleaning Up Old Sessions

13.4 Cookies

13.4.1 Reading and Writing Cookies

13.5 Conclusion

Chapter 14. Authentication

14.1 Authlogic

14.1.1 Getting Started

14.1.2 Creating the Models

14.1.3 Setting Up the Controllers

14.1.4 Controller, Limiting Access to Actions

14.1.5 Configuration

14.1.6 Summary

14.2 Devise

14.2.1 Getting Started

14.2.2 Modules

14.2.3 Models

14.2.4 Controllers

14.2.5 Devise, Views

14.2.6 Configuration

14.2.7 Extensions

14.2.8 Summary

14.3 Conclusion

Chapter 15. XML and Active Resource

15.1 The to_xml Method

15.1.1 Customizing to_xml Output

15.1.2 Associations and to_xml

15.1.3 Advanced to_xml Usage

15.1.4 Dynamic Runtime Attributes

15.1.5 Overriding to_xml

15.2 The XML Builder

15.3 Parsing XML

15.3.1 Turning XML into Hashes

15.3.2 Typecasting

15.4 Active Resource

15.4.1 List

15.4.2 Show

15.4.3 Create

15.4.4 Update

15.4.5 Delete

15.4.6 Headers

15.4.7 Customizing URLs

15.4.8 Hash Forms

15.5 Active Resource Authentication

15.5.1 HTTP Basic Authentication

15.5.2 HTTP Digest Authentication

15.5.3 Certificate Authentication

15.5.4 Proxy Server Authentication

15.5.5 Authentication in the Web Service Controller

15.6 Conclusion

Chapter 16. Action Mailer

16.1 Setup

16.2 Mailer Models

16.2.1 Preparing Outbound Email Messages

16.2.2 HTML Email Messages

16.2.3 Multipart Messages

16.2.4 Attachments

16.2.5 Generating URLs

16.2.6 Mailer Layouts

16.2.7 Sending an Email

16.3 Receiving Emails

16.3.1 Handling Incoming Attachments

16.4 Server Configuration

16.5 Testing Email Content

16.6 Conclusion

Chapter 17. Caching and Performance

17.1 View Caching

17.1.1 Caching in Development Mode?

17.1.2 Page Caching

17.1.3 Action Caching

17.1.4 Fragment Caching

17.1.5 Expiration of Cached Content

17.1.6 Automatic Cache Expiry with Sweepers

17.1.7 Cache Logging

17.1.8 Action Cache Plugin

17.1.9 Cache Storage

17.2 General Caching

17.2.1 Eliminating Extra Database Lookups

17.2.2 Initializing New Caches

17.2.3 fetch Options

17.3 Control Web Caching

17.3.1 expires_in(seconds, options = {})

17.3.2 expires_now

17.4 ETags

17.4.1 fresh_when(options)

17.4.2 stale?(options)

17.5 Conclusion

Chapter 18. RSpec

18.1 Introduction

18.2 Basic Syntax and API

18.2.1 describe and context

18.2.2 let(:name) {expression}

18.2.3 let!(:name) {expression}

18.2.4 before and after

18.2.5 it

18.2.6 specify

18.2.7 expect

18.2.8 pending

18.2.9 should and should_not

18.2.10 Implicit Subject

18.2.11 Explicit Subject

18.2.12 its

18.3 Predicate Matchers

18.4 Custom Expectation Matchers

18.4.1 Custom Matcher DSL

18.4.2 Fluent Chaining

18.5 Shared Behaviors

18.6 RSpec’s Mocks and Stubs

18.7 Running Specs

18.8 RSpec Rails Gem

18.8.1 Installation

18.8.2 Model Specs

18.8.3 Mocked and Stubbed Models

18.8.4 Controller Specs

18.8.5 View Specs

18.8.6 Helper Specs

18.9 RSpec Tools

18.9.1 RSpactor

18.9.2 watchr

18.9.3 Spork

18.9.4 Specjour

18.9.5 RCov

18.9.6 Heckle

18.10 Conclusion

Chapter 19. Extending Rails with Plugins

19.1 The Plugin System

19.1.1 Plugins as RubyGems

19.1.2 The Plugin Script

19.2 Writing Your Own Plugins

19.2.1 The init.rb Hook

19.2.2 The lib Directory

19.2.3 Extending Rails Classes

19.2.4 The README and MIT-LICENSE File

19.2.5 The install.rb and uninstall.rb Files

19.2.6 Custom Rake Tasks

19.2.7 The Plugin’s Rakefile

19.2.8 Including Assets with Your Plugin

19.2.9 Testing Plugins

19.2.10 Railties

19.3 Conclusion

Chapter 20. Background Processing

20.1 Delayed Job

20.1.1 Getting Started

20.1.2 Creating Jobs

20.1.3 Running

20.1.4 Summary

20.2 Resque

20.2.1 Getting Started

20.2.2 Creating Jobs

20.2.3 Hooks

20.2.4 Plugins

20.2.5 Running

20.2.6 Monitoring

20.2.7 Summary

20.3 Rails Runner

20.3.1 Getting Started

20.3.2 Usage Notes

20.3.3 Considerations

20.3.4 Summary

20.4 Conclusion

Active Model API Reference

A.1 AttributeMethods

A.1.1 active_model/attribute_methods.rb

A.2 Callbacks

A.2.1 active_model/callbacks.rb

A.3 Conversion

A.3.1 active_model/conversion.rb

A.4 Dirty

A.4.1 active_model/dirty.rb

A.5 Errors

A.5.1 active_model/errors.rb

A.6 Lint::Tests

A.7 MassAssignmentSecurity

A.7.1 active_model/mass_assignment_security.rb

A.8 Name

A.8.1 active_model/naming.rb

A.9 Naming

A.9.1 active_model/naming.rb

A.10 Observer

A.10.1 active_model/observing.rb

A.11 Observing

A.11.1 active_model/observing.rb

A.12 Serialization

A.12.1 active_model/serialization.rb

A.13 Serializers::JSON

A.13.1 active_model/serializers/json.rb

A.14 Serializers::Xml

A.14.1 active_model/serializers/xml.rb

A.15 Translation

A.15.1 active_model/translation.rb

A.16 Validations

A.16.1 active_model/validations.rb

A.17 Validator

A.17.1 active_model/validator.rb

Active Support API Reference

B.1 Array

B.1.1 active_support/core_ext/array/access

B.1.2 active_support/core_ext/array/conversions

B.1.3 active_support/core_ext/array/extract_options

B.1.4 active_support/core_ext/array/grouping

B.1.5 active_support/core_ext/array/random_access

B.1.6 active_support/core_ext/array/uniq_by

B.1.7 active_support/core_ext/array/wrap

B.1.8 active_support/core_ext/object/blank

B.1.9 active_support/core_ext/object/to_param

B.2 ActiveSupport::BacktraceCleaner

B.2.1 active_support/backtrace_cleaner

B.3 ActiveSupport::Base64

B.3.1 active_support/base64

B.4 ActiveSupport::BasicObject

B.4.1 active_support/basic_object

B.5 ActiveSupport::Benchmarkable

B.5.1 active_support/benchmarkable

B.6 BigDecimal

B.6.1 active_support/core_ext/big_decimal/conversions

B.6.2 active_support/json/encoding

B.7 ActiveSupport::BufferedLogger

B.7.1 active_support/buffered_logger

B.8 ActiveSupport::Cache::Store

B.9 ActiveSupport::Callbacks

B.9.1 active_support/callbacks

B.10 Class

B.10.1 active_support/core_ext/class/attribute

B.10.2 active_support/core_ext/class/attribute_accessors

B.10.3 active_support/core_ext/class/attribute_accessors

B.10.4 active_support/core_ext/class/delegating_attributes

B.10.5 active_support/core_ext/class/inheritable_attributes

B.10.6 active_support/core_ext/class/subclasses

B.11 ActiveSupport::Concern

B.11.1 active_support/concern

B.12 ActiveSupport::Configurable

B.12.1 active_support/configurable

B.13 Date

B.13.1 active_support/core_ext/date/acts_like

B.13.2 active_support/core_ext/date/calculations

B.13.3 active_support/core_ext/date/ conversions

B.13.4 active_support/core_ext/date/freeze

B.13.5 active_support/json/encoding

B.14 DateTime

B.14.1 active_support/core_ext/date_time/acts_like

B.14.2 active_support/core_ext/date_time/calculations

B.14.3 active_support/core_ext/date_time/conversions

B.14.4 active_support/core_ext/date_time/zones

B.14.5 active_support/json/encoding

B.15 ActiveSupport::Dependencies

B.15.1 active_support/dependencies/autoload

B.16 ActiveSupport::Deprecation

B.17 ActiveSupport::Duration

B.17.1 active_support/duration

B.18 Enumerable

B.18.1 active_support/core_ext/enumerable

B.18.2 active_support/json/encoding

B.19 ERB::Util

B.19.1 active_support/core_ext/string/output_safety

B.20 FalseClass

B.20.1 active_support/core_ext/object/blank

B.20.2 active_support/json/encoding

B.21 File

B.21.1 active_support/core_ext/file/atomic

B.21.2 active_support/core_ext/file/path

B.22 Float

B.22.1 active_support/core_ext/float/rounding

B.23 Hash

B.23.1 active_support/core_ext/hash/conversions

B.23.2 active_support/core_ext/hash/deep_merge

B.23.3 active_support/core_ext/hash/diff

B.23.4 active_support/core_ext/hash/except

B.23.5 active_support/core_ext/hash/indifferent_access

B.23.6 active_support/core_ext/hash/keys

B.23.7 active_support/core_ext/hash/reverse_merge

B.23.8 active_support/core_ext/hash/slice

B.23.9 active_support/core_ext/object/to_param

B.23.10 active_support/core_ext/object/to_query

B.23.11 active_support/json/encoding

B.23.12 active_support/core_ext/object/blank

B.24 HashWithIndifferentAccess

B.24.1 active_support/hash_with_indifferent_access

B.25 ActiveSupport::Inflector::Inflections

B.25.1 active_support/inflector/inflections

B.25.2 active_support/inflector/transliteration

B.26 Integer

B.26.1 active_support/core_ext/integer/inflections

B.26.2 active_support/core_ext/integer/multiple

B.27 ActiveSupport::JSON

B.27.1 active_support/json/decoding

B.27.2 active_support/json/encoding

B.28 Kernel

B.28.1 active_support/core_ext/kernel/agnostics

B.28.2 active_support/core_ext/kernel/debugger

B.28.3 active_support/core_ext/kernel/reporting

B.28.4 active_support/core_ext/kernel/requires

B.28.5 active_support/core_ext/kernel/singleton_class

B.29 Logger

B.29.1 active_support/core_ext/logger

B.30 ActiveSupport::MessageEncryptor

B.30.1 active_support/message_encryptor

B.31 ActiveSupport::MessageVerifier

B.31.1 active_support/message_verifier

B.32 Module

B.32.1 active_support/core_ext/module/aliasing

B.32.2 active_support/core_ext/module/anonymous

B.32.3 active_support/core_ext/module/attr_accessor_with_default

B.32.4 active_support/core_ext/module/attr_internal

B.32.5 active_support/core_ext/module/attribute_accessors

B.32.6 active_support/core_ext/module/delegation

B.32.7 active_support/core_ext/module/introspection

B.32.8 active_support/core_ext/module/synchronization

B.32.9 active_support/dependencies

B.33 ActiveSupport::Multibyte::Chars

B.33.1 active_support/multibyte/chars

B.33.2 active_support/multibyte/unicode

B.33.3 active_support/multibyte/utils

B.34 NilClass

B.34.1 active_support/core_ext/object/blank

B.34.2 active_support/json/encoding

B.34.3 active_support/whiny_nil

B.35 ActiveSupport::Notifications

B.36 Numeric

B.36.1 active_support/core_ext/object/blank

B.36.2 active_support/json/encoding

B.36.3 active_support/numeric/bytes

B.36.4 active_support/numeric/time

B.37 Object

B.37.1 active_support/core_ext/object/acts_like

B.37.2 active_support/core_ext/object/blank

B.37.3 active_support/core_ext/object/duplicable

B.37.4 active_support/core_ext/object/instance_variables

B.37.5 active_support/core_ext/object/to_param

B.37.6 active_support/core_ext/object/with_options

B.37.7 active_support/dependencies

B.37.8 active_support/json/encoding

B.38 ActiveSupport::OrderedHash

B.38.1 active_support/ordered_hash

B.39 ActiveSupport::OrderedOptions

B.39.1 active_support/ordered_options

B.40 ActiveSupport::Railtie

B.40.1 active_support/railtie

B.41 Range

B.41.1 active_support/core_ext/range/blockless_step

B.41.2 active_support/core_ext/range/conversions

B.41.3 active_support/core_ext/range/include_range

B.41.4 active_support/core_ext/range/include_range

B.42 Regexp

B.42.1 active_support/core_ext/enumerable

B.42.2 active_support/json/encoding

B.43 ActiveSupport::Rescuable

B.43.1 active_support/rescuable

B.44 ActiveSupport::SecureRandom

B.44.1 active_support/secure_random

B.45 String

B.45.1 active_support/json/encoding

B.45.2 active_support/core_ext/object/blank

B.45.3 active_support/core_ext/string/access

B.45.4 active_support/core_ext/string/acts_like

B.45.5 active_support/core_ext/string/conversions

B.45.6 active_support/core_ext/string/encoding

B.45.7 active_support/core_ext/string/exclude

B.45.8 active_support/core_ext/string/filters

B.45.9 active_support/core_ext/string/inflections

B.45.10 active_support/core_ext/string/multibyte

B.45.11 active_support/core_ext/string/output_safety

B.45.12 active_support/core_ext/string/starts_ends_with

B.45.13 active_support/core_ext/string/xchar

B.46 ActiveSupport::StringInquirer

B.47 Symbol

B.47.1 active_support/json/encoding

B.48 ActiveSupport::Testing::Assertions

B.48.1 active_support/testing/assertions

B.49 Time

B.49.1 active_support/json/encoding

B.49.2 active_support/core_ext/time/acts_like

B.49.3 active_support/core_ext/time/calculations

B.49.4 active_support/core_ext/time/conversions

B.49.5 active_support/core_ext/time/marshal

B.49.6 active_support/core_ext/time/zones

B.50 ActiveSupport::TimeWithZone

B.51 ActiveSupport::TimeZone

B.51.1 active_support/values/time_zone

B.52 ActiveSupport::TrueClass

B.52.1 active_support/core_ext/object/blank

B.52.2 active_support/json/encoding

B.53 ActiveSupport::XmlMini

B.53.1 active_support/xml_mini

Index

Method Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.117.75