Previous Next Rails Cookbook By Rob Orsini ............................................... Publisher: O'Reilly Pub Date: January 01, 2007 CNPJ-10: 0-596-52731-4 CNPJ-13: 978-0-596-52731-0 Pages: 600 Table of Contents | Index Copyright Foreword Preface Chapter 1. Getting Started Section 1.0. Introduction Joining the Rails Community Finding Documentation Installing MySQL Installing PostgreSQL Installing Rails Fixing Ruby and Installing Rails on OS X 10.4 Tiger Running Rails in OS X with Locomotive Running Rails in Windows with Instant Rails Updating Rails with RubyGems Getting Your Rails Project into Subversion Chapter 2. Rails Development Section 2.0. Introduction Creating a Rails Project Jump-Starting Development with Scaffolding Speeding Up Rails Development with Mongrel Enhancing Windows Development with Cygwin Understanding Pluralization Patterns in Rails Developing Rails in OS X with TextMate Cross-Platform Developing with RadRails Installing and Running Edge Rails Setting Up Passwordless Authentication with SSH Generating RDoc for Your Rails Application Creating Full-Featured CRUD Applications with Streamlined Chapter 3. Active Record Section 3.0. Introduction Setting Up a Relational Database to Use with Rails Programmatically Defining Database Schema Developing Your Database with Migrations Modeling a Database with Active Record Inspecting Model Relationships from the Rails Console Accessing Your Data via Active Record Retrieving Records with find Iterating Over an Active Record Result Set Retrieving Data Efficiently with Eager Loading Updating an Active Record Object Enforcing Data Integrity with Active Record Validations Executing Custom Queries with find_by_sql Protecting Against Race Conditions with Transactions Adding Sort Capabilities to a Model with acts_as_list Performing a Task Whenever a Model Object Is Created Modeling a Threaded Forum with acts_as_nested_set Creating a Directory of Nested Topics with acts_as_tree Avoiding Race Conditions with Optimistic Locking Handling Tables with Legacy Naming Conventions Automating Record Timestamping Factoring Out Common Relationships with Polymorphic Associations Mixing Join Models and Polymorphism for Flexible Data Modeling Chapter 4. Action Controller Section 4.0. Introduction Accessing Form Data from a Controller Changing an Application's Default Page Clarifying Your Code with Named Routes Configuring Customized Routing Behavior Displaying Alert Messages with Flash Extending the Life of a Flash Message Following Actions with Redirects Generating URLs Dynamically Inspecting Requests with Filters Logging with Filters Rendering Actions Restricting Access to Controller Methods Sending Files or Data Streams to the Browser Storing Session Information in a Database Tracking Information with Sessions Using Filters for Authentication Chapter 5. Action View Section 5.0. Introduction Simplifying Templates with View Helpers Displaying Large Datasets with Pagination Creating a Sticky Select List Editing Many-to-Many Relationships with Multiselect Lists Factoring Out Common Display Code with Layouts Defining a Default Application Layout Generating XML with Builder Templates Generating RSS Feeds from Active Record Data Reusing Page Elements with Partials Processing Dynamically Created Input Fields Customizing the Behavior of Standard Helpers Creating a Web Form with Form Helpers Formatting Dates, Times, and Currencies Personalizing User Profiles with Gravatars Avoiding Harmful Code in Views with Liquid Templates Globalizing Your Rails Application Chapter 6. RESTful Development Section 6.0. Introduction Creating Nested Resources Supporting Alternative Data Formats by MIME Type Modeling Relationships RESTfully with Join Models Moving Beyond Simple CRUD with RESTful Resources Consuming Complex Nested REST Resources Developing Your Rails Applications RESTfully Chapter 7. Rails Application Testing Section 7.0. Introduction Centralizing the Creation of Objects Common to Test Cases Creating Fixtures for Many-to-Many Associations Importing Test Data with CSV Fixtures Including Dynamic Data in Fixtures with ERb Initializing a Test Database Interactively Testing Controllers from the Rails Console Interpreting the Output of Test::Unit Loading Test Data with YAML Fixtures Monitoring Test Coverage with rake stats Running Tests with Rake Speeding Up Tests with Transactional Fixtures Testing Across Controllers with Integration Tests Testing Controllers with Functional Tests Examining the Contents of Cookie Testing Custom and Named Routes Testing HTTP Requests with Response-Related Assertions Testing a Model with Unit Tests Unit Testing Model Validations Verifying DOM Structure with Tag-Related Assertions Writing Custom Assertions Testing File Upload Modifying the Default Behavior of a Class for Testing by Using Mocks Improving Feedback by Running Tests Continuously Analyzing Code Coverage with Rcov Chapter 8. JavaScript and Ajax Section 8.0. Introduction Adding DOM Elements to a Page Creating a Custom Report with Drag and Drop Dynamically Adding Items to a Select List Monitoring the Content Length of a Textarea Updating Page Elements with RJS Templates Inserting JavaScript into Templates Letting a User Reorder a List Autocompleting a Text Field Searching for and Highlighting Text Dynamically Enhancing the User Interface with Visual Effects Implementing a Live Search Editing Fields in Place Creating an Ajax Progress Indicator Chapter 9. Action Mailer Section 9.0. Introduction Configuring Rails to Send Email Creating a Custom Mailer Class with the Mailer Generator Formatting Email Messages Using Templates Attaching Files to Email Messages Sending Email from a Rails Application Receiving Email with Action Mailer Chapter 10. Debugging Rails Applications Section 10.0. Introduction Exploring Rails from the Console Fixing Bugs at the Source with Ruby -cw Debugging Your Application in Real Time with the breakpointer Logging with the Built-in Rails Logger Class Writing Debugging Information to a File Emailing Application Exceptions Outputting Environment Information in Views Displaying Object Contents with Exceptions Filtering Development Logs in Real Time Debugging HTTP Communication with Firefox Extensions Debugging Your JavaScript in Real Time with the JavaScript Shell Debugging Your Code Interactively with ruby-debug Chapter 11. Security Section 11.0. Introduction Hardening Your Systems with Strong Passwords Protecting Queries from SQL Injection Guarding Against Cross-Site Scripting Attacks Restricting Access to Public Methods or Actions Securing Your Server by Closing Unnecessary Ports Chapter 12. Performance Section 12.0. Introduction Measuring Web Server Performance with Httperf Benchmarking Portions of Your Application Code Improving Performance by Caching Static Pages Expiring Cached Pages Mixing Static and Dynamic Content with Fragment Caching Filtering Cached Pages with Action Caching Speeding Up Data Access Times with memcached Increasing Performance by Caching Post-Processed Content Chapter 13. Hosting and Deployment Section 13.0. Introduction Hosting Rails Using Apache 1.3 and mod_fastcgi Managing Multiple Mongrel Processes with mongrel_cluster Hosting Rails with Apache 2.2, mod_proxy_balancer, and Mongrel Deploying Rails with Pound in Front of Mongrel, Lighttpd, and Apache Customizing Pound's Logging with cronolog Configuring Pound with SSL Support Simple Load Balancing with Pen Deploying Your Rails Project with Capistrano Deploying Your Application to Multiple Environments with Capistrano Deploying with Capistrano When You Can't Access Subversion Deploying with Capistrano and mongrel_cluster Disabling Your Web Site During Maintenance Writing Custom Capistrano Tasks Cleaning Up Residual Session Records Chapter 14. Extending Rails with Plug-ins Section 14.0. Introduction Finding Third-Party Plug-ins Installing Plug-ins Manipulating Record Versions with acts_as_versioned Building Authentication with acts_as_authenticated Simplifying Folksonomy with the acts_as_taggable Extending Active Record with acts_as Adding View Helpers to Rails as Plug-ins Uploading Files with file_column Uploading Files with acts_as_attachment Disabling Records Instead of Deleting Them with acts_as_paranoid Adding More Elaborate Authentication Using the Login Engine Chapter 15. Graphics Section 15.0. Introduction Installing RMagick for Image Processing Uploading Images to a Database Serving Images Directly from a Database Creating Resized Thumbnails with RMagick Generating PDF Documents Visually Displaying Data with Gruff Creating Small, Informative Graphs with Sparklines Appendix A. Migrating to Rails 1.2 Action Controller Active Record Action View Colophon Index Previous Next