The Rails 3 way

Author(s)

    • Fernandez, Obie

Bibliographic Information

The Rails 3 way

Obie Fernandez

(Addison-Wesley professional Ruby series)

Addison-Wesley, c2011

  • : pbk

Available at  / 2 libraries

Search this Book/Journal

Note

"Rev.ed. of: The Rails way / Obie Fernandez. 2008"-- Cf. Note of UKMARCS

"I felt that naming the book "The Rails Way(Second Edition)"would be accurate"-- Introduction (p. xxxvii)

Description and Table of Contents

Description

The Rails (TM) 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 (TM) 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

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

by "Nielsen BookData"

Related Books: 1-1 of 1

Details

Page Top