Index
A
- action caching
- about / Deciding What to Cache, Action Caching
- ActiveRecord
- about / Connecting Rails to a Database
- migration / ActiveRecord, Migrations, and Models
- model / ActiveRecord, Migrations, and Models
- models, organising / Model == Table
- finder methods / Finders
- validation / Validation
- addresses
- adding, for person / Adding a New Address for a Person
- functionality, implementing / Fleshing Out Companies and Addresses
- managing / Managing Addresses
- orphaned address, suggestions / Managing Addresses
- overview / A Very Quick Interface for Addresses
- advantages, Ruby on Rails
- menial tasks, handling / Rails Handles Menial Tasks
- clear code / Clear Code
- text based file / Text Based File
- open source / Open Source
- documentation / Plentiful Documentation, advantages, Ruby on RailsdocumentationBuilt-in Safe Test Environment
- built-in safe test environment / advantages, Ruby on RailsdocumentationBuilt-in Safe Test Environment
- AJAX
- about / Adding AJAX to the Mix
- adding to application / Adding AJAX to the Mix
- libraries / Adding AJAX to the Mix
- libraries making available, to Rails application / Make the AJAX Libraries Available to our Rails Application
- auto-complete, search enhancing / Enhancing Search with Auto-complete
- helper / Show and Hide Company Address Using link_to_remote
- field in line, editing / Using AJAX to Edit a Field in Line
- field in line, limitations / Using AJAX to Edit a Field in Line
- form rendering, via link_to_remote / Render an AJAX Form via link_to_remote
- drag / A Little script.aculo.us: Drag and Drop
- drop / A Little script.aculo.us: Drag and Drop
- script.aculo.us / A Little script.aculo.us: Drag and Drop
- element, making draggable / Make an Element Draggable
- dragging elements / A Place to Drop the Element
- droppables / A Place to Drop the Element
- AJAX helper
- link_to_remote / Show and Hide Company Address Using link_to_remote
- Apache
- Mongrel / Mongrel behind Apache
- about / Installing Apache
- installing on Linux / Apache on Linux and Mac OS X
- configuring / Apache on Linux and Mac OS X
- installing on Mac OS X / Apache on Linux and Mac OS X
- installing on Windows / Apache on Windows
- as proxy for Rails application / Configuring Apache to Act as a Proxy for a Rails Application
- proxy for Rails, Apache configuring / Configuring Apache to Act as a Proxy for a Rails Application
- static assets, serving / Using Apache to Serve Static Assets
- basic mod_proxy, configuring / Tweaking Our Basic mod_proxy Configuration
- rewrite rules adding, to serve static files / Adding Rewrite Rules to Serve Static Files
- load balancing, to Mongrel cluster / Load Balancing from Apache to the Mongrel Cluster
- Apache Bench
- about / Finding Bottlenecks
- application
- view, adding / Adding a View to the Application
- accessing / Easy Access to the Application
- entry URL simplifying, using routes / Use Routes to Simplify the Entry Point URL
- home page, building / Build a Fast, Clear Home Page
- search function, building / Users Need to be Able to Find Items Easily
- index view, rendering / Use the Index View as the Core of the Search View
- search view, writing / Use the Index View as the Core of the Search View
- search function, creating / Search–The First Attempt
- user input / Do Not Trust User Input
- Rails, dealing with errors / Do Not Trust User Input
- conditions, handling / Handle Nothing
- searching, appropriately / Users Need to be Able to Search Without Knowing Exactly What They Are Looking for, applicationsearching, appropriatelyA Less Specific Search
- less specific search / applicationsearching, appropriatelyA Less Specific Search
- case insensitive searches / Case Insensitive Searches
- auto-complete function, creating / Enhancing Search with Auto-complete
- auto-complete function, implementing / Enhancing Search with Auto-complete, Auto-complete—Wow!, but...
- auto-complete function, crossreferencing / Enhancing Search with Auto-complete
- auto-complete, disadvantages / Use of AJAX—the Lessons Learned from Auto-Complete
- AJAX helper / Show and Hide Company Address Using link_to_remote
- link_to_remote, alternating links / Alternating link_to_remote Elements
- Instiki, installing / Instiki Wiki Help
- Instiki hosting, via Mongrel on Windows / Instiki Wiki Help
- Instiki, modifying / Instiki Wiki Help
- Instiki wiki, helper method creating / Instiki Wiki Help
- user help system / The Best User Help Systems
- user feedback / Keep Talking to Users
- upgrading / Upgrading the Application
- downgrading / Downgrading the Application
- application, developing
- about / A Normal Day in the Office
- options / A Normal Day in the Office
- data, examining / Examining the Data
- data objects / Data Objects
- database table design rules / Database Table Design Rules
- data, separating / Separating the Data
- naming conventions / Naming Conventions
- data, manipulating / Back to the Data
- result, reviewing / Review the Result
- data, validating / Data Validation
- strategies / Just Because You Can, Doesn't Mean You Should
- proper timing / Ensure There is Time to Complete Each Task
- application, extending
- search facility, adding / Adding a Search Facility
- application server
- about / The Application Server
- memory / Memory
- Central Processor Unit / Central Processor Unit–CPU
- CPU / Central Processor Unit–CPU
- hard disks / Hard Disks
- Network Interface Card / Network Interface Card–NIC
- NIC / Network Interface Card–NIC
- LAN / Network Interface Card–NIC
- assertion
- types / Other Types of Assertion
- about / Other Types of Assertion
- associations
- result / Associations between Models
- advantage / Associations between Models
- relationship / Associations between Models
- about / Testing Associations
- testing / Testing Associations
- authentication system
- about / Adding an Authentication System
- adding / Adding an Authentication System
- implementing / Adding an Authentication System
- building / Building the Authentication System
- user model, creating / The User Model
- login form, displaying / Displaying the Login Form
- credentials submitted, checking / Checking Submitted Credentials
- logging out / Logging Out
- login process, testing / Logging Out
- actions, protecting / Protecting Actions
- auto-complete
- about / Enhancing Search with Auto-complete
- search, enchancing / Enhancing Search with Auto-complete
- function, creating / Enhancing Search with Auto-complete
- creating / Enhancing Search with Auto-complete
- implementing / Enhancing Search with Auto-complete
- disadvantages / Use of AJAX—the Lessons Learned from Auto-Complete
B
- backup
- about / Don't Forget Backup, Back Up Rails
- Rails / Back Up Rails
- code repository, backing up / Backing Up the Code Repository
- MySQL database, backing up / Back Up the Database
- scripts, combining / Combining Your Backup Scripts
- business applications
- business process
- solution types / Why Develop?
- off the shelf solution / Why Develop?
- customized solution / Why Develop?
- data gathering / Gathering Data from a Daughter Object's Daughter
- about / Business Processes
- business management / Business Processes
- management accounts / Business Processes
- applications, building / To Be Successful, Build Successful Business Applications
- successful applications, building / To Be Successful, Build Successful Business Applications
- profit, generating / To Be Successful, Build Successful Business Applications
- business applications creating, framework used / To Be Successful, Build Successful Business Applications
- cost reducing / Automate Simple Repetitive Jobs
- redundancy, reducing / Automate Simple Repetitive Jobs
- rapid reporting / Rapid and Detailed Reporting
- detailed reporting / Rapid and Detailed Reporting
- customer payment, ensuring / Ensure Customers Pay for the Goods and Services that the Business Provides
- business activity, example / Review of Business Activity Examples
- success, dealing with / Dealing with Success
- strategies / Just Because You Can, Doesn't Mean You Should
- solutions, improving / Bought in solutions Provide their Own Opportunities
C
- C*UD
- about / C*UD (Create, Update, Delete)
- person, creating / Creating a Person
- Rails form helpers / Creating a Person
- person, updating / Updating a Person, Updating a Person and Their Address
- person, deleting / Deleting a Person
- person deleting, disadvantages / Deleting a Person
- address, updating / Updating a Person and Their Address
- caching
- about / Improving Application Performance with Caching
- application performance, improving / Improving Application Performance with Caching
- types / Improving Application Performance with Caching, How Cache Elements are Named
- cache elements, naming / How Cache Elements are Named
- page caching / How Cache Elements are Named, Deciding What to Cache, Page Caching
- action caching / How Cache Elements are Named, Deciding What to Cache, Action Caching
- fragment caching / How Cache Elements are Named, Deciding What to Cache, Fragment Caching
- Intranet, applying to / Deciding What to Cache
- versus static HTML pages / Deciding What to Cache
- preparing for / Preparing for Caching
- enabling / Preparing for Caching
- clearing out / Clearing out the Cache
- elements, expiring / Clearing out the Cache
- sweeper / Clearing out the Cache
- callback
- company deletions, adding to / Adding a Callback to Company Deletions
- handler / Adding a Callback to Company Deletions
- observer / Adding a Callback to Company Deletions
- observer, locating / Adding a Callback to Company Deletions
- observer, switching on / Adding a Callback to Company Deletions
- unit testing / Unit Testing for Callbacks
- Capistrano
- installing / Capistrano for Easier Deployment
- installing, command line used / Capistrano for Easier Deployment
- about / Deployment with Capistrano
- deployment with / Deployment with Capistrano
- getting started / Getting Started with Capistrano
- files, adding to application / Getting Started with Capistrano
- configuration file, customizing / Getting Started with Capistrano
- roles / Getting Started with Capistrano
- application, deploying / Getting Started with Capistrano
- ssh-agent / Getting Started with Capistrano
- final deployment / A Complete Deployment Recipe
- production database, preparing / Preparing the Production Database
- deployment, starting / First Deployment
- production database, migrating / Migrating the Production Database
- other commands running, with invoke / Running Other Commands on the Server with invoke
- Mongrel, managing from / Managing Mongrel from Capistrano
- tasks, adding / Managing Mongrel from Capistrano
- file uploads, centralizing / Centralizing File Uploads
- application, upgrading / Upgrading the Application
- obsolete releases, cleaning / Cleaning Up Obsolete Releases
- application, downgrading / Downgrading the Application
- Rails version, incompatible / Incompatible Rails Versions
- libraries, missing / Missing Libraries
- repository permissions / Incorrect Subversion Password or Repository Permissions
- Subversion password, incorrect / Incorrect Subversion Password or Repository Permissions
- no access to server / User Doesn't Have SSH Access to the Server
- server, logging to / User Doesn't Have SSH Access to the Server
- application server, inaccessible / Inaccessible Application Server
- database server, inaccessible / Inaccessible Database Server
- companies
- functionality, implementing / Fleshing Out Companies and Addresses
- managing / Managing Companies
- navigation, building / Stubbing Out the Navigation
- deletion, confirming / A Shared View to Confirm Deletions
- person, attaching to / Attaching a Person to a Company
- creating / Creating and Updating Companies
- updating / Creating and Updating Companies
- orphaned address, suggestions / Managing Addresses
- callback adding, to deletion / Adding a Callback to Company Deletions
- controller
- creating / The Tasks Controller
- CRUD operations, handling / The Tasks Controller
- controllers
- about / Controllers and Views: A Recap
- class / Controllers and Views: A Recap
- creating / Creating a Simple Controller and Its Views
- views, creating / Creating a Simple Controller and Its Views
- adding, for companies / Adding a Controller for Companies
- CompaniesController class, creating / Create the CompaniesController
- companiescontroller, creating / Create the CompaniesController
- index view, creating / Create the Index View
- testing / Test It!, controllerstestingSummary
- person, creating / Creating a Person
- Rails form helpers / Creating a Person
- person, updating / Updating a Person
- application-level controller methods, creating / Creating Application-Level Controller Methods
- person, deleting / Deleting a Person
- links, deleting / Adding Edit and Delete Links to a Person's Profile
- edit, adding / Adding Edit and Delete Links to a Person's Profile
- multiple models, editing / Editing Multiple Models Simultaneously
- convention
- over configuration / Convention over Configuration
- breaking / Going off the Rails
- breaking cycle / Going off the Rails
- convention over configuration / Convention over Configuration
- cookies
- about / Adding an Authentication System
- CRUD
- about / The Scaffold
- operations / Controllers and Views: A Recap
- person, deleting / Deleting a Person
- custom helpers
- about / Custom Helpers
- empty fields, default messages for / Default Messages for Empty Fields
- date, formatting / Date Formatting
- place holders / Date Formatting
- custom Rails stack
- installing / Installing a Custom Rails Stack
- custom Rails stack, installing
- advantages / Installing a Custom Rails Stack
- Ruby, installing / Installing Ruby and Rubygems
- Rubygems, installing / Installing Ruby and Rubygems
- Rails, installing / Installing Rails
- Rails documentation / A Note on Rails Documentation
- libraries / Other Libraries
- database platform, selecting / Choosing a Database Platform
- MySQL, installing / Installing MySQL
- Ruby-MySQL, working together / Ruby-MySQL: Making Ruby and MySQL Work Better Together
- IDE, installing / Installing an IDE
D
- data, validating
- minimum data requirement / The Minimum Required Data is Entered
- unique data identification / Each Record can be Uniquely Identified
- fields with specific format / Identify Fields that Need to Have a Particular Format
- referencing / References to Data in Other Tables Point to Actual Data
- database
- creating / Creating a Database and System Account
- connection, setting up / Setting Up a Database Connection
- Rails environment, configuring / Configuring the Rails Environments
- settings, configuring / Configuring the Rails Environments
- configuration options / Configuring the Rails Environments
- connection, testing / Testing the Database Connection
- MySQL connection, troubleshooting / Troubleshooting a MySQL Connection
- previous version / Rolling Back to a Previous Version of the Database
- tables, creating / Completing the Database
- companies table, creating / The companies Table
- addresses table, creating / The addresses Table
- other tables, creating / Generating the Remaining Tables
- one-to-many relationship / Parent to children (one-to-many): addresses to people, Parent to children (one-to-many): companies to people
- one-to-one relationship / Parent to child (one-to-one): addresses to companies
- many-to-many relationship / Many-to-many relationships
- dependencies / Dependencies
- production database / The Production Database
- development database / Separating Development and Production Databases
- development database, separating / Separating Development and Production Databases
- production database, separating / Separating Development and Production Databases
- localhost database / Localhost database–single database.yml
- single database.yml / Localhost database–single database.yml
- development database.yml files, separating / Separate Development and Production database.yml files
- production database.yml files, separating / Separate Development and Production database.yml files
- production database, preparing / Preparing the Production Database
- database platform, selecting
- MySQL, installing / Installing MySQL
- data gathering
- data summarizing, GROUP BY used / Using GROUP BY to Summarize Data
- aggregate functions / Using GROUP BY to Summarize Data, A Deeper Look at Aggregate Functions
- data objects
- about / Data Objects
- database table design rules / Database Table Design Rules
- data processing
- about / Processing Data
- data exporting, from outlook / Exporting the Data from Outlook
- text file mapping, to database tables / Mapping a Text File to Database Tables
- script, coding / Coding the Script
- data source / How Good is the Source Data?
- dependencies
- about / Dependencies
- deploying, Rails application
- Capistrano / Capistrano for Easier Deployment
- FastCGI / Scaling Your Rails Infrastructure
- deployment
- production deployment / Deployment with Capistrano
- with Capistrano / Deployment with Capistrano
- final deployment / A Complete Deployment Recipe
- starting / First Deployment
- first deployment / First Deployment
- production database, migrating / Migrating the Production Database
- troubleshooting / Troubleshooting Deployment
- detailed reporting / Rapid and Detailed Reporting
- development database
- production database, separating / Separating Development and Production Databases
- production database.yml files, separating / Separate Development and Production database.yml files
- Document Object Model
- about / A DOM Object to Update
- updating / A DOM Object to Update
- Domain Name System/Server
- about / Domain Name System (DNS)
- host name, adding / Domain Name System (DNS)
- draggable elements
- about / Make an Element Draggable
- dragging elements
- about / A Place to Drop the Element
E
- EasyEclipse
- Java Runtime Environment / EasyEclipse
- for PHP / EasyEclipse
- for Python / EasyEclipse
- for Ruby on Rails / EasyEclipse
- installing / EasyEclipse
- installing on Windows / Installing EasyEclipse on Windows
- installing on Linux / Installing EasyEclipse on Linux
- installing on Mac OS X / Installing EasyEclipse on Mac OS X
- Masochists, instructions / Instructions for Masochists
- Eclipse
- about / Eclipse
- disadvantages / Pros and Cons of Eclipse
- advantages / Pros and Cons of Eclipse
- ERb
- about / Views and Layouts
- Ruby HTML / Views and Layouts
- template / Views and Layouts
- helper / Pagination
- errors
- in production / Errors in Production
- additional data processing, impact on performance / Slow List Rendering due to Placement of Additional Data Processing in Loop
- additional data processing, symptom / Symptom
- additional data processing, cause / Cause
- additional data processing, solution / Fix
- at server / Application Error Following the Transferring of New Code to Production
- application error, symptom / Symptom
- application error, cause / Cause
- application error, solution / Solution
- errors handling
- about / Handling Errors
- classes / Handling Errors
- to catch / Handling Errors
- missing record errors, catching / Catching Missing Record Errors, Caerrors handlingmissing record errors, catchingtching UnknownAction and Routing Errors
- routing errors, catching / Caerrors handlingmissing record errors, catchingtching UnknownAction and Routing Errors
- UnknownAction, catching / Caerrors handlingmissing record errors, catchingtching UnknownAction and Routing Errors
- application-level errors, catching / Catching General Application-Level Errors
- Rails has fallen over errors, catching / Catching "Rails has Fallen Over" Errors
- application error / Catching "Rails has Fallen Over" Errors
- service temporarily unavailable / Catching "Rails has Fallen Over" Errors
F
- FastCGI
- feedback
- dealing with / Dealing with User Feedback
- user feedback, dealing with / Dealing with User Feedback
- FHS / Ruby on Linux
- file
- uploading / Uploading and Attaching Files
- attaching / Uploading and Attaching Files
- uploading, using acts_as_attachment / Using acts_as_attachment for File Uploads
- attachments / Managing File Attachments for a Task
- attachment managing, for task / Managing File Attachments for a Task
- attaching to task, form adding / Adding a Form for Attaching a File to a Task
- attachment, adding to task / Adding a File Attachment to a Task
- attachment, listing for task / Listing File Attachments for a Task
- attachment, deleting for task / Deleting File Attachments for a Task
- attachment, protecting / Protecting File Attachment Actions
- uploads, centralizing / Centralizing File Uploads
- application, upgrading / Upgrading the Application
- obsolete releases, cleaning / Cleaning Up Obsolete Releases
- file attaching
- about / Uploading and Attaching Files
- file attachments
- managing, for task / Managing File Attachments for a Task
- functionality / Managing File Attachments for a Task
- form adding, to task / Adding a Form for Attaching a File to a Task
- adding, to task / Adding a File Attachment to a Task
- listing, for task / Listing File Attachments for a Task
- deleting, for task / Deleting File Attachments for a Task
- protecting / Protecting File Attachment Actions
- Filesystem Hierarchy Standard / Ruby on Linux
- file uploading
- about / Uploading and Attaching Files
- using acts_as_attachment / Using acts_as_attachment for File Uploads
- filters
- about / Using Filters
- finders
- about / Finders
- records, returning / Finding All of the Records in a Table
- virtual attributes / Virtual Attributes
- records, sorting / Sorting Records
- single record, finding / Finding a Single Record
- records matching search criteria, finding / Finding Records Matching Search Criteria
- records using attribute based finders, finding / Finding Records Using Attribute-Based Finders
- dynamic attribute based finders / Finding Records Using Attribute-Based Finders
- records by Raw SQL, finding / Finding Records by Raw SQL
- custom finder, writing / Writing a Custom Finder
- SQL, viewing / Viewing the SQL
- logs in Eclipse, viewing / Viewing Logs in Eclipse
- Eclipse, setting up / Viewing Logs in Eclipse
- fixtures
- about / Fixtures
- transactional fixtures / Transactional and Instantiated Fixtures
- instantiated fixtures / Transactional and Instantiated Fixtures
- flash
- fragment caching
- about / Deciding What to Cache, Fragment Caching
- for actions / Fragment Caching for Actions
- database calls, avoiding / Avoiding Database Calls for Cached Fragments
- framework
- need for developing / Why Develop?
- client/server, need for / Why a Client/Server based Web Application?
- functional testing
G
- gem server
- installed gems, serving / Serving Installed Gems
- setting, as default / Setting Your Gem Server as the Default
- creating manually / Creating a Gem Server Manually
- setting up, using Apache on Linux / Creating a Gem Server Manually
- GUI Tools
- MySQL Query Browser / MySQL GUI Tools
- MySQL Administrator / MySQL GUI Tools
- phpMyAdmin / MySQL GUI Tools
- MySQL Workbench / MySQL GUI Tools
H
- helper
- about / Pagination
- custom helpers / Custom Helpers
- writing / Custom Helpers
- controller specific / Custom Helpers
- application level / Custom Helpers
- versus partial / Rendering Pagination Links with a Partial
- custom helper, adding / Refining with a Helper
I
- IDE
- installing / Installing an IDE
- benefits over basic editor / Installing an IDE
- Eclipse / Eclipse
- index view
- creating / Create the Index View
- about / Use the Index View as the Core of the Search View
- rendering / Use the Index View as the Core of the Search View
- instantiated fixtures
- Instiki
- about / Instiki Wiki Help
- installing / Instiki Wiki Help
- hosting, via Mongrel on Windows / Instiki Wiki Help
- modifying / Instiki Wiki Help
- Instiki wiki
- about / Instiki Wiki Help
- helper method, creating / Instiki Wiki Help
- intranet
- simple task tracking, adding / Adding Simple Task Tracking
- files, attaching / Uploading and Attaching Files
L
- layout
- adding / Adding a Layout
- about / Adding a Layout
- template / Adding a Layout
- page titles / Page Titles in Layouts
- libraries
- about / Other Libraries
- versus plugins / Other Libraries
- link_to_remote
- company address, showing / Show and Hide Company Address Using link_to_remote
- company address, hiding / Show and Hide Company Address Using link_to_remote
- about / Show and Hide Company Address Using link_to_remote, A Simple link_to_remote
- use / A Simple link_to_remote
- functionality, increasing / Increasing the Functionality of link_to_remote
- advantages / Increasing the Functionality of link_to_remote
- address entries, showing / Show and Hide
- address entries, hiding / Show and Hide
- alternating links / Alternating link_to_remote Elements
- alternative actions / Alternative Actions, link_to_remotealternative actionsDebugging JavaScript
- JavaScript, debugging / link_to_remotealternative actionsDebugging JavaScript
- within company index list, showing / Show/Hide within the Company Index List
- within company index list, hiding / Show/Hide within the Company Index List
- AJAX form, rendering / Render an AJAX Form via link_to_remote
- log files, managing
- log detail, reducing / Reducing Log Detail
- log levels
- about / Reducing Log Detail
M
- memory
- about / Memory
- menu
- adding / Adding a Menu
- about / Adding a Menu
- locating, issues / Adding a Menu
- migration
- about / Which Comes First: The Model or The Table?
- ActiveRecord / Which Comes First: The Model or The Table?
- use / Which Comes First: The Model or The Table?
- running / Which Comes First: The Model or The Table?, Running a Migration
- model, building / Building a Model with Migrations
- editing, Eclipse used / Building a Model with Migrations
- class / Building a Model with Migrations
- data stucture converting, to migration / Converting a Data Structure into a Migration
- data structure converting, to migration / Converting a Data Structure into a Migration
- columns, defining / Defining Columns in Migrations
- column types / Defining Columns in Migrations
- MySQL field data types, mapping / Defining Columns in Migrations
- extra options / Defining Columns in Migrations
- operations / Other Operations Available in a Migration
- model
- about / Model == Table, Models in Detail
- organising / Model == Table
- migration, building with / Building a Model with Migrations
- aspects / Models in Detail
- new records creating, via models / Creating New Records in a Table via Models
- finders / Finders
- validation / Validation
- testing / Testing
- fixtures / Fixtures
- associations between models / Associations between Models
- task model / The Task Model
- command line, creating from / The Task Model
- models
- editing / Editing Multiple Models Simultaneously
- mutiple models, editing / Editing Multiple Models Simultaneously
- Mongrel
- Rails applications, running / Mongrel: A Better Way to Run Rails Applications
- installing / Mongrel: A Better Way to Run Rails Applications
- installing on Linux / Mongrel: A Better Way to Run Rails Applications
- installing, gem used / Mongrel: A Better Way to Run Rails Applications
- installing on Ubuntu / Mongrel: A Better Way to Run Rails Applications
- guidelines for installing / Mongrel: A Better Way to Run Rails Applications
- installing on Windows / Mongrel: A Better Way to Run Rails Applications
- application, serving / Using Mongrel to Serve Your Application
- about / Mongrel
- installing on server / Mongrel
- configuration, modifying / Mongrel
- service on Windows / Mongrel Service on Windows
- service, removing / Mongrel Service on Windows
- limitations / Limitations of Mongrel
- behind Apache, hosting / Mongrel behind Apache
- Apache / Mongrel behind Apache
- starting automatically / Starting Mongrel Automatically
- cluster, proxying to / Proxying to a Mongrel Cluster
- cluster, setting up / Setting up the Mongrel Cluster
- load balancing, from Apache / Load Balancing from Apache to the Mongrel Cluster
- Mongrel, managing
- from Capistrano / Managing Mongrel from Capistrano
- Mongrel cluster
- about / Proxying to a Mongrel Cluster
- proxying to / Proxying to a Mongrel Cluster
- setting up / Setting up the Mongrel Cluster
- manually starting / Setting up the Mongrel Cluster
- testing / Setting up the Mongrel Cluster
- load balancing, from Apache / Load Balancing from Apache to the Mongrel Cluster
- mutiple models, editing
- about / Editing Multiple Models Simultaneously
- address adding, for person / Adding a New Address for a Person
- functional testing using, for complex actions / Using Functional Testing for Complex Actions
- person, updating / Updating a Person and Their Address
- address, updating / Updating a Person and Their Address
- MVC
- about / Model-View-Controller Architecture
- architecture / Model-View-Controller Architecture
- Rails / Rails and MVC
- MySQL
- installing / Installing MySQL
- installing on Windows / MySQL on Windows
- recommendations / MySQL on Windows, MySQLrecommendationsMySQL on Linux
- installing on Linux / MySQLrecommendationsMySQL on Linux
- installing on Mac OS X / MySQL on Mac OS X
- installation, checking / Checking Your MySQL Installation
- GUI Tools / MySQL GUI Tools
- integrating Ruby / Ruby-MySQL: Making Ruby and MySQL Work Better Together
- troubleshooting, connection / Troubleshooting a MySQL Connection
N
- naming conventions
- meaningful names / Use Meaningful Names
- consistency / Use a Consistent Naming Convention
- for Ruby on Rails / Ruby on Rails Naming Conventions
- classes / Constants and Classes
- constants / Constants and Classes
- variables / Variables
- properties / Methods and Properties
- methods / Methods and Properties
- property suffixes / Special Method and Property Suffixes
- special methods / Special Method and Property Suffixes
- reserved words / Reserved Words
- NAS / Don't Forget Backup
- network attached storage / Don't Forget Backup
- Network Attached Storage
- about / Version Control with Subversion
- Network Interface Card
- about / Network Interface Card–NIC
P
- page caching
- about / Deciding What to Cache, Page Caching
- page titles
- about / Page Titles in Layouts
- pagination
- about / Pagination
- links rendering, with partial / Rendering Pagination Links with a Partial
- parameters
- partial
- address, showing / Showing an Address with a Partial
- pagination links, rendering / Rendering Pagination Links with a Partial
- versus helper / Rendering Pagination Links with a Partial
- partial templates
- person, creating
- helper, refining with / Refining with a Helper
- errors, validating / Validation Errors
- flash / The Flash
- final step / Finishing Touches
- person model
- behavior / Tests for the Person Model
- tests / Tests for the Person Model
- valid email address / A person should have a valid email address
- no same email address / No two People can have the Same email address
- person without first name is invalid / A person without a first name is invalid
- person without last name is invalid / A person without a last name is invalid
- gender must be M or F / A person's gender must be set to 'M' or 'F'
- full_name method / The full_name method should produce a correctly-formatted string
- find_all_ordered method / The find_all_ordered method should correctly sort people
- plugins
- about / Other Libraries, Using Plugins
- versus libraries / Other Libraries
- uses / Using Plugins
- finding / Using Plugins
- removing / Using Plugins
- externals / Using Plugins
- acts_as_attachment / Using acts_as_attachment for File Uploads
- production
- database / The Production Database
- migration using / Using Migration in Production
- production database
- about / The Production Database
- development database, separating / Separating Development and Production Databases
- development database.yml files, separating / Separate Development and Production database.yml files
- production environment
- creating / An Application Ready for Production
- testing / An Application Ready for Production
- server / Your First Production Server
- application transferring, using Subversion / Using Subversion to Transfer the Application to the Production Environment
- components, installing / Rory's Production Installation
- test application, installing / Rory's Production Installation
- test application, running / Rory's Production Installation
- installing components / Rory's Production Installation
- routing simplifying, using host names / Using Two Host Names to Simplify Routing
- intranet application, into production / Rory Puts his Intranet Application into Production
- errors / Errors in Production
- production database, preparing / Preparing the Production Database
- production database, migrating / Migrating the Production Database
- profiler
- manually running / Controller Action Profiling Using around_filter
- about / Controller Action Profiling Using around_filter
- project
- about / Putting the Project into Context
- Subversion, storing in / Storing a Project in Subversion
- temporary files, ignoring / Ignoring Temporary Files
R
- Rails
- installing / Installing Rails
- installing, command line used / Installing Rails
- installing, gems used / Installing Rails
- gems downloading / Installing Rails
- MVC / Rails and MVC
- power tools / Rails and MVC
- database connection, setting up / Testing the Database Connection
- migration, running / Running a Migration
- Rake / Running a Migration
- scaffolding / The Scaffold
- testing, types / Testing
- views / Views and Layouts
- Embedded Ruby / Views and Layouts
- ERb / Views and Layouts
- helper / Pagination
- asset ID / Adding a Stylesheet
- partial templates / Showing an Address with a Partial
- form helpers / Creating a Person
- refactoring / Opportunities for Refactoring
- DRY / Opportunities for Refactoring
- refactoring, using filters / Using Filters
- refactoring, application-level controller creating / Creating Application-Level Controller Methods
- functional testing using, for complex actions / Using Functional Testing for Complex Actions
- backup / Don't Forget Backup, Back Up Rails
- installing on server / Installing Ruby and Rails
- database user / The Rails Database User
- code repository, backing up / Backing Up the Code Repository
- database, backing up / Back Up the Database
- cookies / Adding an Authentication System, Cookies and Sessions in Rails
- session / Adding an Authentication System
- session, handling / Cookies and Sessions in Rails
- plugins / Using Plugins
- plugins, installing / Using Plugins
- profiler / The Rails Profiler
- skills analogy / Going off the Rails
- solutions / Going off the Rails
- Server Integration Services / Going off the Rails
- Rails and MVC / Rails and MVC
- Rails application
- libraries / Other Libraries
- database platform, selecting / Choosing a Database Platform
- MySQL, installing / Installing MySQL
- working / The World According to Rails
- history / The World According to Rails
- features / The World According to Rails
- MVC / Model-View-Controller Architecture
- convention over configuration / Convention over Configuration
- setting up / Setting Up a New Rails Application
- serving, Mongrel using / Using Mongrel to Serve Your Application
- database, connecting to / Connecting Rails to a Database
- ActiveRecord / Connecting Rails to a Database
- database, creating / Creating a Database and System Account
- system account, creating / Creating a Database and System Account
- database connection, setting up / Setting Up a Database Connection
- production environment, testing / An Application Ready for Production
- production environment, creating / An Application Ready for Production
- errors, dealing with / Do Not Trust User Input
- AJAX, adding / Adding AJAX to the Mix
- AJAX libraries, making available / Make the AJAX Libraries Available to our Rails Application
- auto-complete, search enhancing / Enhancing Search with Auto-complete
- developer help / Help!
- RDoc-documentation, for developer / RDoc–Documentation for the Developer
- user help / Help for the User
- wiki / Help for the User
- user help system, guidelines / The Best User Help Systems
- keeping in order / Housekeeping
- Mongrel, starting automatically / Starting Mongrel Automatically
- stale session files, clearing out / Clearing Out Stale Sessions
- log files, managing / Keeping Log Files Manageable
- log detail, reducing / Reducing Log Detail
- log levels / Reducing Log Detail
- optimising / Optimizing a Rails Application
- issues, tracking / Optimizing a Rails Application
- bottlenecks, finding / Finding Bottlenecks
- performance improving, bottlenecks finding / Finding Bottlenecks
- Rails logs / Finding Bottlenecks
- Rails logs, analysis / Finding Bottlenecks
- data mocking up, for analysis / Finding Bottlenecks
- Apache Bench / Finding Bottlenecks
- page rendering, caching used / Finding Bottlenecks
- controller action profiling, using around_filter / Controller Action Profiling Using around_filter
- profiling / Profiling Everything
- Rails profiler / The Rails Profiler
- performance improving, caching used / Improving Application Performance with Caching
- optimizing / Optimizing How Rails Uses the Database
- eager loading / Ordering for Eager Loading
- performance, improving / Scaling Your Rails Infrastructure
- performance improving, infrastructure scaling / Scaling Your Rails Infrastructure
- techniques / Scaling Your Rails Infrastructure
- FastCGI / Scaling Your Rails Infrastructure
- static assets serving, using Apache / Using Apache to Serve Static Assets, Proxying to a Mongrel Cluster
- Rails asset ID
- about / Adding a Stylesheet
- Rails deployment
- troubleshooting / Troubleshooting Deployment
- Rails version, incompatible / Incompatible Rails Versions
- Rails version incompatible, errors / Incompatible Rails Versions
- errors, fixing / Incompatible Rails Versions
- libraries, missing / Missing Libraries
- Subversion password, incorrect / Incorrect Subversion Password or Repository Permissions
- repository permissions / Incorrect Subversion Password or Repository Permissions
- no access to server / User Doesn't Have SSH Access to the Server
- application server, inaccessible / Inaccessible Application Server
- database server, inaccessible / Inaccessible Database Server
- Rails development
- supporting / Supporting Rails Development
- hardware, setting up / Supporting Rails Development
- environment / Supporting Rails Development
- developer machine / Supporting Rails Development
- server / Supporting Rails Development
- version control system / Supporting Rails Development
- goals, setting / Addressing the Challenges
- Rails stack / Addressing the Challenges
- team server / Addressing the Challenges
- team server, setting up / Setting Up a Team Server
- Rails documentation
- about / A Note on Rails Documentation
- finding / A Note on Rails Documentation
- finding, manually / A Note on Rails Documentation
- Rails environment
- configuring / Configuring the Rails Environments
- characteristics / Configuring the Rails Environments
- development / Configuring the Rails Environments
- test / Configuring the Rails Environments
- production / Configuring the Rails Environments
- Rails form helpers
- about / Creating a Person
- Rails infrastructure
- about / Scaling Your Rails Infrastructure
- scaling / Scaling Your Rails Infrastructure, Advanced Scaling
- static assets serving, using Apache / Using Apache to Serve Static Assets, Proxying to a Mongrel Cluster
- faster session / Advanced Scaling
- cache store / Advanced Scaling
- memcached / Advanced Scaling
- hardware, adding / Advanced Scaling
- database, replicating / Advanced Scaling
- database, clustering / Advanced Scaling
- faster load balancer, using / Advanced Scaling
- Rails logs
- about / Finding Bottlenecks
- analysis / Finding Bottlenecks
- data mocking up, for analysis / Finding Bottlenecks
- summarizer, writing / Finding Bottlenecks
- Rails stack
- setting up / Setting Up a Rails Stack
- Ruby / Setting Up a Rails Stack
- Rubygems / Setting Up a Rails Stack
- Rails / Setting Up a Rails Stack
- Capistrano / Setting Up a Rails Stack
- Mongrel / Setting Up a Rails Stack
- database / Setting Up a Rails Stack
- editor / Setting Up a Rails Stack
- EasyEclipse / Setting Up a Rails Stack
- bundle, used / Setting Up a Rails Stack
- installing / Installing a Rails Stack Using a Bundle
- custom Rails stack installing / Installing a Custom Rails Stack
- Rails stack, installing
- bundle, used / Installing a Rails Stack Using a Bundle
- InstantRails, on Windows / Installing a Rails Stack Using a Bundle
- Locomotive, on Mac OS X / Installing a Rails Stack Using a Bundle
- XAMPP, on Linux / Installing a Rails Stack Using a Bundle
- AxleGrease / Installing a Rails Stack Using a Bundle
- rapid reporting / Rapid and Detailed Reporting
- RDoc-documentation
- records
- showing / Showing Associated Records
- refactoring
- about / Opportunities for Refactoring
- relationship
- one-to-many / Parent to children (one-to-many): addresses to people, Parent to children (one-to-many): companies to people
- addresses to people / Parent to children (one-to-many): addresses to people
- parent to children / Parent to children (one-to-many): addresses to people, Parent to children (one-to-many): companies to people
- one-to-one / Parent to child (one-to-one): addresses to companies
- addresses to companies / Parent to child (one-to-one): addresses to companies
- parent to child / Parent to child (one-to-one): addresses to companies
- companies to people / Parent to children (one-to-many): companies to people
- many-to-many / Many-to-many relationships
- many-to-many, guidelines / Many-to-many relationships
- remote, accessing
- Secure Shell, used / Remote Access via SSH
- users, adding / Adding Users
- revision
- about / Revisions and Working Copies
- Rory
- contact data, separating / Rory's Data
- tables / Rory's Data
- person / RorypersonAddress
- Ruby
- installing / Installing Ruby and Rubygems
- installing on Windows / Ruby on Windows
- installing on Linux / Ruby on Linux
- installing on Ubuntu, Synaptic used / Ruby on Linux
- installing on Linux, Debian used / Ruby on Linux
- installing on Mac OS X / Ruby on Mac OS X
- integrating MySQL / Ruby-MySQL: Making Ruby and MySQL Work Better Together
- syntax / Building a Model with Migrations
- installing on server / Installing Ruby and Rails
- YAML / Separate Development and Production database.yml files
- controller action profiling, using around_filter / Controller Action Profiling Using around_filter
- profiling / Controller Action Profiling Using around_filter
- ruby-prof / Controller Action Profiling Using around_filter
- Ruby-MySQL
- installing / Ruby-MySQL: Making Ruby and MySQL Work Better Together
- installing on Windows / Ruby-MySQL: Making Ruby and MySQL Work Better Together
- installing on Linux / Ruby-MySQL on Linux
- installing on Mac OS X / Ruby-MySQL on Mac OS X
- Rubygems
- installing / Installing Ruby and Rubygems, Ruby on Linux
- installing, command line used / Ruby on Linux
- uninstalling / Ruby on Linux
- Ruby HTML
- about / Views and Layouts
- Ruby on Rails
- advantages / But why Ruby on Rails?
- platform / Addressing the Challenges
- add-ons / Other Libraries
- libraries vs plugins / Other Libraries
- Nitro and Camping / Mongrel: A Better Way to Run Rails Applications
- Ruby on Rails Webhosting / Using Other People's Servers
S
- scaffold
- scaffold generator
- scaffolding
- about / The Scaffold
- CRUD / The Scaffold
- alternatives / The Scaffold
- scaling
- about / Advanced Scaling
- script.aculo.us
- about / A Little script.aculo.us: Drag and Drop
- element, making draggable / Make an Element Draggable
- dragging elements / A Place to Drop the Element
- droppables / A Place to Drop the Element
- search
- less specific search / applicationsearching, appropriatelyA Less Specific Search
- case insensitive searches / Case Insensitive Searches
- auto-complete / Enhancing Search with Auto-complete
- search facility
- about / Adding a Search Facility
- adding / Adding a Search Facility
- action / Adding a Search Facility
- view template / Adding a Search Facility
- form / Adding a Search Facility
- search function
- building / Users Need to be Able to Find Items Easily
- about / Search–The First Attempt
- creating / Search–The First Attempt
- search view
- server
- application server / The Application Server
- production server, requirements / Your First Production Server
- setting up / Setting up the Server
- Rails environment, creating / Setting up the Server
- installing Ruby / Installing Ruby and Rails
- installing Rails / Installing Ruby and Rails
- files, copying, to / Copying the Files to the Server
- application transferring to production environment, using Subversion / Using Subversion to Transfer the Application to the Production Environment
- files excluding, from repository / Excluding Files from the Repository
- production database / The Production Database
- production database, hosting / The Production Database
- development database, separating / Separating Development and Production Databases
- production database, separating / Separating Development and Production Databases
- localhost database / Localhost database–single database.yml
- single database.yml / Localhost database–single database.yml
- single database.yml, disadvantages / Localhost database–single database.yml
- development database.yml files, separating / Separate Development and Production database.yml files
- production database.yml files, separating / Separate Development and Production database.yml files
- database.yml files, disadvantages / Separate Development and Production database.yml files
- production, using migration / Using Migration in Production
- Rails database user / The Rails Database User
- errors / Application Error Following the Transferring of New Code to Production
- session
- about / The Flash, Adding an Authentication System
- handling / Cookies and Sessions in Rails
- shared drive
- about / Version Control with Subversion
- simple task tracking
- task model, creating / The Task Model
- task model / The Task Model
- task controller, creating / The Tasks Controller
- task controller / The Tasks Controller
- task views / Task Views
- person tasks, showing / Showing Tasks for a Person
- redirecting to person, after task adding / Redirecting to a Person after Adding or Editing a Task
- redirecting to person, after task editing / Redirecting to a Person after Adding or Editing a Task
- redirecting to person, alternatives / Redirecting to a Person after Adding or Editing a Task
- integrated forms / Redirecting to a Person after Adding or Editing a Task
- in-place editors / Redirecting to a Person after Adding or Editing a Task
- redirecting, after deletion / Redirecting after a Deletion
- cancel link, handling / Handling the Cancel Link
- default person for new tasks, setting / Setting a Default Person for a New Task
- about / Summary
- SQL
- about / SQL
- migration / SQL
- data gathering / Gathering Data from a Daughter Object's Daughter
- data summarizing, GROUP BY used / Using GROUP BY to Summarize Data
- aggregate functions / A Deeper Look at Aggregate Functions
- standard Subversion layout
- trunk / Subversion Standard Practices
- branches / Subversion Standard Practices
- tags / Subversion Standard Practices
- example / Subversion Standard Practices
- revision / Revisions and Working Copies
- HEAD revision / Revisions and Working Copies
- working copies / Revisions and Working Copies
- working copies, outcomes / Revisions and Working Copies
- stylesheet
- about / Adding a Stylesheet
- adding / Adding a Stylesheet
- Subversion
- about / Version Control with Subversion
- installing / Installing Subversion
- installing on Ubuntu, command line used / Installing Subversion
- syn / Installing Subversion
- repository / Subversion Standard Practices
- standard Subversion layout / Subversion Standard Practices
- repository, setting up / Setting Up a Subversion Repository
- project in Subversion, setting up / Setting Up a Project in Subversion
- browsing from Eclipse / Browsing Subversion from Eclipse
- clients / Other Subversion Clients
- TortoiseSVN / Other Subversion Clients
- Meld / Other Subversion Clients
- external services, accessing / Using Other People's Servers
- Subversion repository
- projects / Subversion Standard Practices
- addressbook / Subversion Standard Practices
- calendar / Subversion Standard Practices
- project in Subversion, storing / Storing a Project in Subversion
- temporary files, ignoring / Ignoring Temporary Files
- subversion repository
- temporary files, ignoring / Ignoring Temporary Files
- code committing / Committing Code to the Repository
- system account
- creating / Creating a Database and System Account
- advantages / Creating a Database and System Account
- permissions / Creating a Database and System Account
T
- tables
- MyISAM / Other Operations Available in a Migration
- about / Completing the Database
- companies table / The companies Table
- addresses table / The addresses Table
- other tables / Generating the Remaining Tables
- associations / Models in Detail
- new records creating, via models / Creating New Records in a Table via Models
- records, finding / Finding All of the Records in a Table
- text file mapping, to database / Mapping a Text File to Database Tables
- task
- simple task tracking / Adding Simple Task Tracking
- model / The Task Model
- controller / The Tasks Controller
- views / Task Views
- person tasks, showing / Showing Tasks for a Person
- redirecting to person, after adding / Redirecting to a Person after Adding or Editing a Task
- redirecting to person, after editing / Redirecting to a Person after Adding or Editing a Task
- redirecting, after deletion / Redirecting after a Deletion
- cancel link, handling / Handling the Cancel Link
- default person for new tasks, setting / Setting a Default Person for a New Task
- file attachments, managing for / Managing File Attachments for a Task
- file attaching to task, form adding / Adding a Form for Attaching a File to a Task
- file attachment, adding to / Adding a File Attachment to a Task
- file attachment, listing for / Listing File Attachments for a Task
- file attachment, deleting for / Deleting File Attachments for a Task
- file attachment, protecting / Protecting File Attachment Actions
- team server
- about / Setting Up a Team Server
- setting up / Setting Up a Team Server
- core functions, configuring / Setting Up a Team Server
- accessing, users adding / Adding Users
- team server, setting up
- software, installing / Setting Up a Team Server
- gems, installing / Quick Gem Installation
- version control with subversion / Version Control with Subversion
- Subversion repository / Subversion Standard Practices
- test application
- creating / An Application Ready for Production
- developing / An Application Ready for Production
- testing
- about / Testing
- disadvantages / Testing
- automated testing / Testing
- types, by Rails / Testing
- unit tests / Testing
- functional tests / Testing
- integration tests / Testing
- regressions / Testing
- setting up for / Setting Up for Testing
- anatomy / Anatomy of a Test Case
- choosing criteria / What Should be Tested?
- person model / Tests for the Person Model
- for positives / The find_all_ordered method should correctly sort people
- for negatives / The find_all_ordered method should correctly sort people
- test driven development / Becoming Driven by Testing
- advantages / Becoming Driven by Testing
- TDD / Becoming Driven by Testing
- tracking
- about / Tracking Who does What
- no authentication / No Log-On and No Authentication
- no log on / No Log-On and No Authentication
- simple password access / Simple Password Access
- user log on / User Log-On
- access history, recording / Recording Access History
- access control / Access Control for Rory's Application
- transactional fixtures
- troubleshooting
- Rails version, incompatible / Incompatible Rails Versions
- errors, fixing / Incompatible Rails Versions, Dealing with the Inexplicable
- libraries, missing / Missing Libraries
- credentials incorrect / User Doesn't Have SSH Access to the Server
- application server, inaccessible / Inaccessible Application Server
- database server, inaccessible / Inaccessible Database Server
- inexplicable, dealing with / Dealing with the Inexplicable
- application, rebuilding on production server / Getting Back to a Clean Slate
U
- user
- help system / The Best User Help Systems
- help guidelines / The Best User Help Systems
- feedback / Keep Talking to Users
- feedback, dealing with / Dealing with User Feedback
- user help
- about / The Best User Help Systems
- guidelines / The Best User Help Systems
- user interface
- controllers / Creating a Simple Controller and Its Views
- layouts / Views and Layouts
- views / Views and Layouts
- view techniques / Advanced View Techniques
V
- validation
- about / Validation
- empty field values, checking for / Checking for Empty Field Values
- regular expression, checking against / Checking Against a Regular Expression
- uniqueness, checking for / Checking for Uniqueness
- inclusion in range of values, checking for / Checking for Inclusion in a Range of Values
- records related, validating / Validating Related Records
- companies, validating / Validating Companies
- addresses, validating / Validating Addresses
- methods / Other Types of Validation, Testing
- persons address, validating / Validating a Person's Address
- companys address, validating / Validating a Company's Address
- persons company, validating / Validating a Person's Company
- version control
- with Subversion / Version Control with Subversion
- version control system
- about / Version Control with Subversion
- views
- about / Views and Layouts
- adding, to application / Adding a View to the Application
- model instances, displaying / Displaying Model Instances in a View
- linking / Linking to Another View
- drill down / Linking to Another View
- adding / Linking to Another View
- layout, adding / Adding a Layout
- stylesheet, adding / Adding a Stylesheet
- extending / Advanced View Techniques
- custom helpers / Custom Helpers
- records, showing / Showing Associated Records
- refining, helper used / Refining Using a Helper
- address showing, with partial / Showing an Address with a Partial
- menu / Adding a Menu
- virtual attributes
- about / Virtual Attributes, Custom Helpers
W
- web developer tool
- about / Adding a View to the Application
- web server
- about / The Web Server
- Mongrel installing / Mongrel
- Apache / Mongrel behind Apache
- Domain Name System/Server / Domain Name System (DNS)
- DNS / Domain Name System (DNS)
- Domain Name System/Server, host name adding / Domain Name System (DNS)
- wiki
- about / Help for the User
- advantages / Help for the User
Y
- YAML
- about / Setting Up a Database Connection, Separate Development and Production database.yml files
- benefits over XML / Setting Up a Database Connection