The Rails 3 Way / Edition 2
  • Alternative view 1 of The Rails 3 Way / Edition 2
  • Alternative view 2 of The Rails 3 Way / Edition 2
  • Alternative view 3 of The Rails 3 Way / Edition 2
<Previous >Next

The Rails 3 Way / Edition 2

5.0 1
by Obed (Obie) Fernandez
     
 

ISBN-10: 0321601661

ISBN-13: 9780321601667

Pub. Date: 12/24/2010

Publisher: Addison-Wesley

The Rails™ 3 Way is a comprehensive resource that digs into the new features in Rails 3 and perhaps more importantly, the rationale behind them.
—Yehuda Katz, Rails Core

The Bible for Ruby on Rails Application Development

Ruby on Rails strips complexity from the development process, enabling professional developers to focus on

…  See more details below

Overview

The Rails™ 3 Way is a comprehensive resource that digs into the new features in Rails 3 and perhaps more importantly, the rationale behind them.
—Yehuda Katz, Rails Core

The Bible for Ruby on Rails Application Development

Ruby on Rails strips complexity from the development process, enabling professional developers to focus on what matters most: delivering business value via clean and maintainable code. The Rails™ 3 Way is the only comprehensive, authoritative guide to delivering production-quality code with Rails 3. Pioneering Rails expert Obie Fernandez and a team of leading experts illuminate the entire Rails 3 API, along with the idioms, design approaches, and libraries that make developing applications with Rails so powerful. Drawing on their unsurpassed experience and track record, they address the real challenges development teams face, showing how to use Rails 3 to maximize your productivity.

Using numerous detailed code examples, the author systematically covers Rails 3 key capabilities and subsystems, making this book a reference that you will turn to again and again. He presents advanced Rails programming techniques that have been proven effective in day-to-day usage on dozens of production Rails systems and offers important insights into behavior-driven development and production considerations such as scalability. Dive deep into the Rails 3 codebase and discover why Rails is designed the way it is—and how to make it do what you want it to do.

This book will help you

  • Learn what’s new in Rails 3
  • Increase your productivity as a web application developer
  • Realize the overall joy in programming with Rails
  • Leverage Rails’ powerful capabilities for building REST-compliant APIs
  • Drive implementation and protect long-term maintainability using RSpec
  • Design and manipulate your domain layer using Active Record
  • Understand and program complex program flows using Action Controller
  • Master sophisticated URL routing concepts
  • Use Ajax techniques via Rails 3 support for unobtrusive JavaScript
  • Learn to extend Rails with popular gems and plugins, and how to write your own
  • Extend Rails with the best third-party plug-ins and write your own
  • Integrate email services into your applications with Action Mailer
  • Improve application responsiveness with background processing
  • Create your own non-Active Record domain classes using Active Model
  • Master Rails’ utility classes and extensions in Active Support

Read More

Product Details

ISBN-13:
9780321601667
Publisher:
Addison-Wesley
Publication date:
12/24/2010
Series:
Addison-Wesley Professional Ruby Series
Pages:
850
Product dimensions:
6.90(w) x 8.90(h) x 1.60(d)

Table of Contents

Foreword by David Heinemeier Hansson xxxiii

Foreword by Yehuda Katz xxxv

Introduction xxxvii

Acknowledgments xliii

About the Author xlv

Chapter 1: Rails Environments and Configuration 1

1.1 Bundler 2

1.2 Startup and Application Settings 8

1.3 Development Mode 15

1.4 Test Mode 19

1.5 Production Mode 20

1.6 Logging 23

1.7 Conclusion 29

Chapter 2: Routing 31

2.1 The Two Purposes of Routing 32

2.2 The routes.rb File 33

2.3 Route Globbing 45

2.4 Named Routes 46

2.5 Scoping Routing Rules 50

2.6 Listing Routes 53

2.7 Conclusion 54

Chapter 3: REST, Resources, and Rails 55

3.1 REST in a Rather Small Nutshell 55

3.2 Resources and Representations 56

3.3 REST in Rails 57

3.4 Routing and CRUD 58

3.5 The Standard RESTful Controller Actions 61

3.6 Singular Resource Routes 64

3.7 Nested Resources 65

3.8 RESTful Route Customizations 69

3.9 Controller-Only Resources 74

3.10 Different Representations of Resources 76

3.11 The RESTful Rails Action Set 78

3.12 Conclusion 83

Chapter 4: Working with Controllers 85

4.1 Rack 86

4.2 Action Dispatch: Where It All Begins 88

4.3 Render unto View 92

4.4 Additional Layout Options 101

4.5 Redirecting 101

4.6 Controller/View Communication 104

4.7 Filters 105

4.8 Verification 111

4.9 Streaming 112

4.10 Conclusion 117

Chapter 5: Working with Active Record 119

5.1 The Basics 120

5.2 Macro-Style Methods 121

5.3 Defining Attributes 123

5.4 CRUD: Creating, Reading, Updating, Deleting 127

5.5 Database Locking 142

5.6 Where Clauses 146

5.7 Connections to Multiple Databases in Different Models 153

5.8 Using the Database Connection Directly 154

5.9 Other Configuration Options 158

5.10 Conclusion 159

Chapter 6: Active Record Migrations 161

6.1 Creating Migrations 161

6.2 Data Migration 173

6.3 schema.rb 174

6.4 Database Seeding 175

6.5 Database-Related Rake Tasks 176

6.6 Conclusion 179

Chapter 7: Active Record Associations 181

7.1 The Association Hierarchy 181

7.2 One-to-Many Relationships 183

7.3 The belongs—to Association 191

7.4 The has—many Association 200

7.5 Many-to-Many Relationships 209

7.6 One-to-One Relationships 223

7.7 Working with Unsaved Objects and Associations 226

7.8 Association Extensions 227

7.9 The AssociationProxy Class 229

7.10 Conclusion 230

Chapter 8: Validations 231

8.1 Finding Errors 231

8.2 The Simple Declarative Validations 232

8.3 Common Validation Options 242

8.4 Conditional Validation 243

8.5 Short-form Validation 245

8.6 Custom Validation Techniques 246

8.7 Skipping Validations 249

8.8 Working with the Errors Hash 249

8.9 Testing Validations with Shoulda 250

8.10 Conclusion 250

Chapter 9: Advanced Active Record 251

9.1 Scopes 251

9.2 Callbacks 256

9.3 Calculation Methods 265

9.4 Observers 268

9.5 Single-Table Inheritance (STI) 269

9.6 Abstract Base Model Classes 276

9.7 Polymorphic has many Relationships 277

9.8 Foreign-key Constraints 281

9.9 Using Value Objects 281

9.10 Modules for Reusing Common Behavior 285

9.11 Modifying Active Record Classes at Runtime 289

9.12 Conclusion 292

Chapter 10: Action View 293

10.1 Layouts and Templates 294

10.2 Partials 302

10.3 Conclusion 308

Chapter 11: All About Helpers 309

11.1 ActiveModelHelper 309

11.2 AssetTagHelper 316

11.3 AtomFeedHelper 324

11.4 CacheHelper 326

11.5 CaptureHelper 326

11.6 DateHelper 328

11.7 DebugHelper 333

11.8 FormHelper 333

11.9 FormOptionsHelper 350

11.10 FormTagHelper 355

11.11 JavaScriptHelper 358

11.12 NumberHelper 359

11.13 PrototypeHelper 361

11.14 RawOutputHelper 361

11.15 RecordIdentificationHelper 362

11.16 RecordTagHelper 363

11.17 SanitizeHelper 364

11.18 TagHelper 366

11.19 TextHelper 367

11.20 TranslationHelper and the I18n API 372

11.21 UrlHelper 391

11.22 Writing Your Own View Helpers 398

11.23 Wrapping and Generalizing Partials 401

11.24 Conclusion 407

Chapter 12: Ajax on Rails 409

12.1 Unobtrusive JavaScript 411

12.3 Ajax and JSON 419

12.3.1 Ajax link to 419

12.4 Ajax and HTML 421

12.5 Ajax and JavaScript 423

12.6 Conclusion 424

Chapter 13: Session Management 425

13.1 What to Store in the Session 426

13.2 Session Options 427

13.3 Storage Mechanisms 427

13.4 Cookies 431

13.5 Conclusion 432

Chapter 14: Authentication 433

14.1 Authlogic 434

14.2 Devise 439

14.3 Conclusion 443

Chapter 15: XML and Active Resource 445

15.1 The to—xml Method 445

15.2 The XML Builder 454

15.3 Parsing XML 456

15.4 Active Resource 457

15.5 Active Resource Authentication 465

15.6 Conclusion 469

Chapter 16: Action Mailer 471

16.1 Setup 471

16.2 Mailer Models 472

16.3 Receiving Emails 477

16.4 Server Configuration 479

16.5 Testing Email Content 479

16.6 Conclusion 481

Chapter 17: Caching and Performance 483

17.1 View Caching 483

17.2 General Caching 495

17.3 Control Web Caching 497

17.4 ETags 498

17.5 Conclusion 500

Chapter 18: RSpec 501

18.1 Introduction 501

18.2 Basic Syntax and API 504

18.3 Predicate Matchers 513

18.4 Custom Expectation Matchers 514

18.5 Shared Behaviors 517

18.6 RSpec’s Mocks and Stubs 517

18.7 Running Specs 520

18.8 RSpec Rails Gem 521

18.9 RSpec Tools 531

18.10 Conclusion 533

Chapter 19: Extending Rails with Plugins 535

19.1 The Plugin System 536

19.2 Writing Your Own Plugins 537

19.3 Conclusion 547

Chapter 20: Background Processing 549

20.1 Delayed Job 550

20.2 Resque 553

20.3 Rails Runner 557

20.4 Conclusion 559

Appendix A: Active Model API Reference 561

A.1 Attribute Methods 561

A.2 Callbacks 563

A.3 Conversion 563

A.4 Dirty 564

A.5 Errors 565

A.6 Lint::Tests 567

A.7 MassAssignmentSecurity 567

A.8 Name 568

A.9 Naming 569

A.10 Observer 569

A.11 Observing 570

A.12 Serialization 571

A.13 Serializers::JSON 572

A.14 Serializers::Xml 572

A.15 Translation 573

A.16 Validations 574

A.17 Validator 578

Appendix B: Active Support API Reference 579

B.1 Array 579

B.2 ActiveSupport::BacktraceCleaner 585

B.3 ActiveSupport::Base64 586

B.4 ActiveSupport::BasicObject 586

B.5 ActiveSupport::Benchmarkable 587

B.6 BigDecimal 588

B.7 ActiveSupport::BufferedLogger 588

B.8 ActiveSupport::Cache::Store 590

B.9 ActiveSupport::Callbacks 595

B.10 Class 598

B.11 ActiveSupport::Concern 602

B.12 ActiveSupport::Configurable 603

B.13 Date 603

B.14 DateTime 609

B.15 ActiveSupport::Dependencies 613

B.16 ActiveSupport::Deprecation 617

B.17 ActiveSupport::Duration 617

B.18 Enumerable 619

B.19 ERB::Util 620

B.20 FalseClass 621

B.21 File 621

B.22 Float 622

B.23 Hash 622

B.24 HashWithIndifferentAccess 627

B.25 ActiveSupport::Inflector::Inflections 628

B.26 Integer 632

B.27 ActiveSupport::JSON 633

B.28 Kernel 634

B.29 Logger 635

B.30 ActiveSupport::MessageEncryptor 636

B.31 ActiveSupport::MessageVerifier 637

B.32 Module 638

B.33 ActiveSupport::Multibyte::Chars 645

B.34 NilClass 648

B.35 ActiveSupport::Notifications 649

B.36 Numeric 650

B.37 Object 653

B.38 ActiveSupport::OrderedHash 657

B.39 ActiveSupport::OrderedOptions 657

B.40 ActiveSupport::Railtie 658

B.41 Range 658

B.42 Regexp 660

B.43 ActiveSupport::Rescuable 660

B.44 ActiveSupport::SecureRandom 661

B.45 String 662

B.46 ActiveSupport::StringInquirer 671

B.47 Symbol 671

B.48 ActiveSupport::Testing::Assertions 671

B.49 Time 673

B.50 ActiveSupport::TimeWithZone 680

B.51 ActiveSupport::TimeZone 681

B.52 ActiveSupport::TrueClass 684

B.53 ActiveSupport::XmlMini 684

Index 687

Method Index 697

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network

     

Most Helpful Customer Reviews

See all customer reviews >