Product Overview
Simply Rails 2
Index
A
- access log, (Using the Rails Logging Tool)
- accessor methods
- about, (Accessor Methods)
- defined, (Object-level Functionality)
- types of, (Accessor Methods)
- action (see method)
- ActionController module, (ActionController (the Controller))
- defined, (MVC the Rails Way)
- function, (ActionController (the Controller))
- ActionController::Base class, (ActionController (the Controller)), (Understanding the Output)
- ActionMailer, (ActionMailer)
- ActionPack library, (MVC the Rails Way)
- ActionPack module
- log files, (Revisiting the Logs)
- MVC architecture, (The ActionPack Module)
- ActionView helpers
- about, (Introducing ActionView Helpers)
- writing, (Writing an ActionView Helper)
- ActionView module, (MVC the Rails Way), (ActionView (the View)), (Creating Static Pages)
- ActionView templates, (Creating the View)
- ActionView::Base, (ActionView (the View))
- ActiveRecord dynamic finder method, (Making a Model Taggable)
- ActiveRecord module, (ActiveRecord (the Model))
- applications, (ActiveRecord (the Model))
- counter cache, (Introducing the Counter Cache)
- database abstraction, (Database Abstraction)
- database tables, (Database Tables), (Determining Where a Story Lives)
- defined, (MVC the Rails Way)
- defining relationships between objects, (Defining Relationships Between Objects)
- logging functionality, (Revisiting the Logs)
- saving an object, (Saving an Object)
- validations, (Applying Validations)
- ActiveRecord object
- creating, (Creating a User)
- storing in session container, (Adding Functionality to the Controller)
- syntax for creating, (Saving an Object)
- ActiveRecord prefixes, (Introducing Model Callbacks)
- ActiveRecord Store session container, (The ActiveRecord Store Session Container)
- ActiveRecord::Base class, (Saving an Object)
- acts, (What acts_as_taggable_on_steroids Does)
- acts_as_list, (What acts_as_taggable_on_steroids Does)
- acts_as_nested_set, (What acts_as_taggable_on_steroids Does)
- acts_as_taggable_on_steroids plugin, (Introducing the acts_as_taggable_on_steroids Plugin)
- columns in taggable table, (Creating a Migration for the Plugin)
- creating a migration for, (Creating a Migration for the Plugin)
- installing, (Installing the acts_as_taggable_on_steroids Plugin)
- making a model taggable, (Making a Model Taggable)
- polymorphic associations, (Understanding Polymorphic Associations)
- tables, (Creating a Migration for the Plugin)
- what it does, (What acts_as_taggable_on_steroids Does)
- acts_as_tree, (What acts_as_taggable_on_steroids Does)
- add_column function, (Making Room for the Cache)
- after filters, (After Filters)
- after_ callbacks, (Introducing Model Callbacks)
- after_create, (Introducing Model Callbacks)
- after_filter method, (After Filters)
- Agile development methods, (Agile Development)
- Agile development practices, (Agile Development)
- Ajax
- about, (Don’t Repeat Yourself)
- and Rails, (Remote Scripting with Prototype)
- applications, (Introducing Ajax)
- function, (Introducing Ajax)
- what is it?, (Ajax and Rails)
- XmlHttpRequest object, (Introducing Ajax)
- Ajax-powered to-do list without visual feedback, (Adding Visual Effects with script.aculo.us)
- Ajax voting
- testing, (Testing Ajax Voting)
- :all argument, (Retrieving Records)
- Apache web server
- about, (Apache)
- installing on Windows, (Installing on Windows)
- mod_ruby extension, (The mod_ruby Extension)
- moving to the production system, (Moving to the Production System)
- proxy module, (Setting up Apache)
- setting up for Mongrel, (Setting up Apache)
- apachect1 reload, (Setting up Apache)
- app object, (Revisiting the Rails Console)
- app subdirectory, (MVC the Rails Way)
- application.js (file), (Including the JavaScript Libraries)
- ApplicationController class, (Understanding the Output), (Protecting the Form), (Requiring Users to Log In), (Using the Rails Logging Tool)
- application’s performance
- monitoring by checking log files, (Taking Benchmarks from Log Files)
- architecture of Rails application, (Choosing a Production Environment)
- argument, (Ruby Is an Object Oriented Language)
- around filters, (Around Filters)
- Array (class), (Arrays)
- creating from a list of Strings, (Arrays)
- creating new, shortcut, (Arrays)
- first element in, (Arrays)
- retrieving elements from, (Arrays)
- retrieving records, (Retrieving Records)
- use in data management, (Arrays)
- use with blocks, (Blocks)
- use with for loops, (for Loops)
- assert_equal assertion, (Testing a Story’s Relationship to a Vote), (Testing a User’s Relationship to a Story), (Testing a Story’s Relationship to a User), (Testing a User’s Relationship to a Vote), (Testing the Creation of the Initial Vote)
- assert_nil assertion, (Testing a Failed Login), (Testing a Logout)
- assert_not_nil assertion, (Writing a Functional Test), (Testing a Logout)
- assert_redirected_to assertion, (Testing Regular HTTP Voting)
- assert_redirected_to method, (Testing a Successful Login), (Testing Redirection After Logout)
- assert_response assertion, (Writing a Functional Test), (Testing a Failed Login), (Testing Redirection After Logout)
- assert_routing assertion, (Testing the Routing Configuration)
- assert_select assertion, (Writing More Functional Tests), (Testing Page Rendering), (Testing Page Headings), (Testing the Story Display Page), (Testing the Display of Stories by Tag)
- assert_template assertion, (Writing a Functional Test), (Testing a Failed Login)
- assertions, (Using Assertions)
- assigning our first tags, (Assigning Our First Tags)
- assignment operator (=), (while and until Loops)
- associating stories with users, (Associating Stories with Users)
- displaying the submitter, (Displaying the Submitter)
- storing the submitter, (Storing the Submitter)
- associations
- class names, (Introducing the has_many :through Association)
- defined, (Introducing Relationships)
- has_many :through, (Introducing the has_many :through Association)
- join model relationship, (Introducing the Join Model Relationship)
- associations between objects, (Defining Relationships Between Objects)
- @ sign, (Instance Variables)
- attributes
- adding to stories, (Adding a Model Attribute)
- changing the value of, (Updating Records)
- auto-completion of strings, (Adding Visual Effects with script.aculo.us)
- auto-voting, (Auto-voting for Newly Submitted Stories)
- automated testing, (Automated Testing)
B
- back-end component options, (Choosing a Production Environment), (Back-end Options)
- backslash character (\), (Strings)
- Basecamp, (History)
- before-and-after check, (Testing Vote Storage)
- before filters, (Before Filters), (Allowing Users to Log Out), (Storing the Submitter), (Using the Rails Logging Tool)
- before_create, (Introducing Model Callbacks)
- before_delete, (Introducing Model Callbacks)
- before_filter method, (Before Filters), (Requiring a Login to Vote)
- before_save, (Introducing Model Callbacks)
- belongs_to clause, (Introducing the belongs_to Clause)
- benchmark class method, (Manual Benchmarking)
- benchmarking, (Benchmarking Your Application)
- definition, (Benchmarking Your Application)
- information from log files, (Taking Benchmarks from Log Files)
- manual, (Manual Benchmarking)
- Bignum (class), (Numerics)
- bin action, (Implementing the Voting Bin), (Testing Page Headings)
- bloat, (Convention Over Configuration)
- blocks, (Blocks)
- defined, (Control Structures)
- parameters for, (Blocks)
- boolean values, (Method Notation)
- Breakpoint library
- ruby-debug tool, (Meeting ruby-debug)
- breakpoint statements (see ruby-debug tool)
- building a foundation, (Building a Foundation)
- creating the standard directory structure, (Creating the Standard Directory Structure)
- standard directory structure, (One Directory Structure to Rule Them All)
- building the example web application, (Building the Example Web Application)
C
- caching, (Caching)
- available for pages, actions and page fragments, (The Implications of “Production”)
- callback methods, (Introducing Model Callbacks)
- callbacks
- adding, (Adding a Callback)
- alternative syntax, (Introducing Model Callbacks)
- defined, (Auto-voting for Newly Submitted Stories)
- in models, (Introducing Model Callbacks)
- CamelCase, (ActionController (the Controller))
- Capistrano (deployment and management system), (Capistrano)
- cd command (change directory), (Staying Organized)
- chaining statements together, (Chaining Statements Together)
- class definition, (Understanding the Output), (Creating a Skeleton Migration File), (Understanding the Output)
- class method, (The Interactive Ruby Shell (irb)), (Class-level Functionality)
- class names, (ActionController (the Controller))
- class variables, (Class-level Functionality)
- class-level functionality, (Class-level Functionality)
- classes, (Classes and Objects)
- (see also Ruby classes)
- and objects, (Ruby Is an Object Oriented Language)
- naming, (ActionController (the Controller))
- clean URLs, (Features of the Example Application)
- code generation, (Code Generation)
- :collection, (Styling the Voting History)
- colon (:)
- use before Symbols, (Symbols)
- columns
- adding to stories table, (Adding a Model Attribute)
- comments in line of code, (Dot Notation)
- compiled languages
- about, (Compiled Languages)
- performance against scripting languages, (The Great Performance Debate)
- conditionals, (Conditionals)
- defined, (Control Structures)
- if construct, (The if Construct)
- unless construct, (The unless Construct)
- configuration files, (Convention Over Configuration), (Database Configuration)
- console script, (Revisiting the Rails Console)
- constants, (Variables and Constants)
- ConTEXT (text editor), (Windows Text Editors)
- control structures, (Control Structures)
- blocks, (Control Structures), (Blocks)
- conditionals, (Control Structures), (Conditionals)
- loops, (Control Structures), (Loops)
- controller class names, (Understanding the Output)
- controller generator, (Generating a Controller)
- running the generate Script, (Running the generate Script)
- starting our application again, (Starting Our Application … Again)
- understanding the output, (Understanding the Output)
- controllers, (ActionController (the Controller))
- (see also ActionController module)
- adding functionality to, (Adding Functionality to the Controller)
- communication with views via instance variables, (ActionView (the View))
- for login functionality, (Creating the Controller)
- models and views, (Convention Over Configuration)
- modifying, (Modifying the Controller), (Modifying the Controller), (Adding Another Controller), (Modifying the Controller), (Creating the Controller)
- MVC, (MVC in Theory)
- testing, (Testing the Controller)
- tagging functionality, (Testing the Controller)
- user authentication, (Testing the Controllers)
- voting functionality, (Testing the Controller)
- controls.js (file), (Including the JavaScript Libraries)
- convention over configuration, (Convention Over Configuration)
- cookies
- expiration date, (What’s a Cookie?)
- session, (What’s a Session?)
- setting expiration date, (What’s a Cookie?)
- in testing, (Using Breakpoints in a Test)
- what are they?, (What’s a Cookie?)
- cost of software, (What Does All This Cost?)
- count (class method), (Class-level Functionality)
- counter cache
- applying the migration, (Applying the Migration)
- function, (Introducing the Counter Cache)
- making room for the cache, (Making Room for the Cache)
- testing additions to, (Testing Additions to the Counter Cache)
- testing deletions from, (Testing Deletions from the Counter Cache)
- udating the RJS template, (Updating the RJS Template)
- counting votes
- using counter cache, (Introducing the Counter Cache)
- create (files), (Understanding the Output)
- create class method, (Creating Records)
- create method, (Testing the Voting History Order)
- create stories file (example), (Understanding the Output), (Creating a Skeleton Migration File), (Creating Records)
- migration using rake, (Using rake to Migrate Our Data)
- :created_at, (Examining the Vote Migration)
- creating a layout, (Creating a Layout)
- creating dynamic pages, (Creating Dynamic Pages)
- creating partials, (Creating the Partial)
- creating records, (Creating Records)
- creating static pages, (Creating Static Pages)
- creating the database structure (production environment), (Moving to the Production System)
- creating views, (Creating a View)
- CRUD Verbs versus HTTP verbs, (REST and the Web)
- current test-to-code ratio, (Running the Full Test Suite)
- current user, (Retrieving the Current User), (Displaying the Name of the Current User), (Allowing Users to Log Out), (Storing the Submitter), (Testing a Logout)
- displaying name of, (Displaying the Name of the Current User)
- retrieving, (Retrieving the Current User)
- custom class methods, (Class-level Functionality)
D
- data integrity in development, (Displaying the Submitter)
- data management
- using Arrays, (Arrays)
- database abstraction (ActiveRecord), (Database Abstraction)
- database architecture of a Rails application, (The Database Configuration File)
- database associations, (Defining Relationships Between Objects)
- database configuration files, (Database Configuration)
- database migrations (see migrations)
- database relationships, (Introducing Relationships)
- database schema, (Database Tables)
- database schema definition, (Don’t Repeat Yourself)
- database structure
- creating (production environment), (Moving to the Production System)
- database tables, (Database Tables)
- creating for user model, (Generating a User Model)
- naming, (Database Tables)
- typical structure, (Database Tables)
- date-formatting helper, (Styling the Voting History)
- db namespace, (Using rake to Migrate Our Data)
- debugging, (Debugging Your Application), (Debugging using ruby-debug)
- (see also ruby-debug tool)
- about, (Debugging)
- overcoming problems in, (Overcoming Problems in Debugging)
- using Rails logging tool, (Using the Rails Logging Tool)
- within templates, (Debugging within Templates)
- Debugging, (Debugging using ruby-debug)
- declaring
- resources, (Resources in Rails)
- def keyword, (Instance Methods)
- :default argument, (Making Room for the Cache)
- default directory structure
- conventions, (One Directory Structure to Rule Them All)
- creating, (Creating the Standard Directory Structure)
- default page, (Setting the Default Page)
- default Rails welcome page, (Setting the Default Page)
- degradation
- fallback action for browsers, (Ensuring Graceful Degradation)
- delete
- use with Arrays, (Arrays)
- deleting records, (Deleting Records)
- deploying Shovell, (Deploying Shovell)
- moving to the production system, (Moving to the Production System)
- setting up Apache, (Setting up Apache)
- deployment management systems, (Version Control and Deployment Management)
- description column, (Adding a Description to Stories)
- destroy method, (Deleting Records)
- development environment
- SQL statements, (Where’s the SQL?)
- development environment (Rails), (Three Environments)
- digg
- Shovell project, (Creating the Standard Directory Structure)
- what is it?, (What Is Digg?)
- digg effect, (What Is Digg?)
- digg homepage, (What Is Digg?)
- do keyword, (Blocks)
- don’t repeat yourself (see DRY programming)
- dot notation, (Dot Notation)
- down method, (Creating a Skeleton Migration File)
- drag-and-drop, (Adding Visual Effects with script.aculo.us)
- dragdrop.js (file), (Including the JavaScript Libraries)
- DRY programming, (Don’t Repeat Yourself)
- dynamic finder methods, (Retrieving Records)
- dynamic pages
- creating, (Creating Dynamic Pages)
- defined, (Creating Static Pages)
E
- each method, (Blocks), (Making Room for the Cache)
- edit-in-place, (Adding Visual Effects with script.aculo.us)
- effects.js (file), (Including the JavaScript Libraries)
- else block, (The if Construct), (The unless Construct)
- <em> tag, (Displaying the Name of the Current User)
- Emacs (text editor), (Linux and Cross-platform Editors)
- for error notification, (The Implications of “Production”), (Errors by Email)
- handled via ActionMailer, (ActionMailer)
- resulting from Exception Notification plugin, (The Implications of “Production”)
- embedded Ruby (see ERb)
- empty?
- use in Arrays, (Arrays)
- use with Hash, (Hashes)
- encapsulation, (Classes and Objects)
- end keyword, (Instance Methods), (The if Construct), (Blocks)
- equation operator (==), (while and until Loops)
- ERb syntax, (ActionView (the View))
- ERb tags, (ActionView (the View)), (Creating Dynamic Pages), (Introducing the form_for Helper), (Avoiding Presentation Logic Spaghetti)
- ERb templates, (Creating Static Pages)
- error messages
- by email, (The Implications of “Production”), (Errors by Email)
- code excerpts in, (Debugging within Templates)
- seen in production environment, (The Implications of “Production”)
- errors attribute, (Writing a Unit Test), (Writing More Functional Tests)
- example web application
- building, (Building the Example Web Application)
- features, (Features of the Example Application)
- using digg, (What Is Digg?)
- Exception Notification plugin, (The Implications of “Production”), (Errors by Email)
- exists (folders), (Understanding the Output)
F
- failed login, (Testing a Failed Login)
- fallback action
- for browsers, (Ensuring Graceful Degradation)
- FastCGI protocol, (The FastCGI Protocol)
- fetch_logged_in_user method, (Retrieving the Current User), (Allowing Users to Log Out), (Storing the Submitter), (Testing Display of the Username), (Using the Rails Logging Tool)
- fetch_stories method, (Implementing the Voting Bin), (Manual Benchmarking)
- files
- naming, (ActionController (the Controller))
- filter conditions, (Introducing Filter Conditions)
- filter methods, (A Word on Filter Methods)
- filters, (Introducing Filters)
- after filters, (After Filters)
- around filters, (Around Filters)
- before filters, (Before Filters)
- find (class method), (Retrieving Records)
- find calls, (Adding Another Controller)
- find operation, (Modifying the Controller)
- find_by_, (Retrieving Records)
- find_by_id method, (Retrieving the Current User)
- find_by_link, (Retrieving Records)
- find_by_name, (Retrieving Records)
- find_tagged_with class method, (Making a Model Taggable), (Testing the Finding of a Story by Tag)
- Firefox cookie manager, (What’s a Cookie?)
- firewall, (Installing on Windows)
- first
- use with Arrays, (Arrays)
- :first argument, (Retrieving Records), (Pulling in a Model)
- first method, (Retrieving Records)
- first tags
- assigning, (Assigning Our First Tags)
- Fixnum (class), (The Interactive Ruby Shell (irb)), (Numerics)
- fixtures
- defined, (Understanding the Output)
- in functional tests, (Writing a Functional Test)
- preparing, (Preparing the Fixtures), (Preparing the Fixtures)
- user model, (Preparing the Fixtures)
- flash
- adding to, (Adding to the Flash)
- retrieving data from, (Retrieving Data from the Flash)
- flash areas
- functional tests, (Writing More Functional Tests)
- naming conventions, (Adding to the Flash)
- passing messages, (Adding to the Flash)
- flash content, (Adding to the Flash), (Retrieving Data from the Flash)
- nil or blank, (Retrieving Data from the Flash)
- Float (class), (Numerics)
- follow_redirect! statement, (Creating Our First Integration Test), (Revisiting the Rails Console)
- for loop, (for Loops)
- form creation, (Creating a Form)
- analyzing the HTML, (Analyzing the HTML)
- modifying the controller, (Modifying the Controller)
- using form_for helper, (Introducing the form_for Helper)
- form element, (Writing More Functional Tests)
- form tags, (Introducing the form_for Helper)
- form_for helper, (Introducing the form_for Helper), (Creating the Template), (Improving the User Experience), (Creating the View)
- syntax, (Introducing the form_for Helper)
- form_tag helper, (Creating the View)
- FormBuilder object, (Introducing the form_for Helper)
- framework
- applications, (Introducing Ruby on Rails)
- definition, (Introducing Ruby on Rails)
- free software licenses, (What Does All This Cost?)
- front-end server platform, (Choosing a Production Environment)
- front page, (Implementing the Front Page)
- modifying the controller, (Modifying the Controller)
- modifying the partial, (Creating the Partial)
- modifying the view, (Modifying the View)
- setting the default page, (Setting the Default Page)
- styling, (Styling the Front Page)
- full-stack
- definition, (Introducing Ruby on Rails)
- functional tests
- comparison to integration tests, (Creating Our First Integration Test)
- defined, (Testing the Form)
- for the new action, (Writing More Functional Tests)
- revealing test failures, (Debugging within Templates)
- running, (Running a Functional Test)
G
- gcc compiler
- confirming installation, (Prerequisites)
- gem command, (Installing RubyGems on a Mac), (Installing RubyGems on Linux)
- generate command, (Code Generation), (Automated Testing)
- generate Script
- code generation, (Code Generation)
- creating the model, (Creating the Model)
- generating a user model, (Generating a User Model)
- running, (Running the generate Script), (Running the generate Script)
- sample output, (Code Generation)
- generating a controller, (Generating a Controller)
- generating a model, (Generating a Model)
- managing data using the Rails Console, (Managing Data Using the Rails Console)
- model generator, (The Model Generator)
- modifying the schema using migrations, (Modifying the Schema Using Migrations)
- SQL statements, (Where’s the SQL?)
- generating a user model, (Generating a User Model)
- generating a vote model, (Generating a Vote Model)
- generating views with scaffolding, (Generating Views with Scaffolding)
- GET, (Writing a Functional Test), (Ensuring Graceful Degradation), (Testing Page Rendering), (Testing Regular HTTP Voting), (Testing the Display of the Login Form), (Revisiting the Rails Console)
- get_with_user, (Testing Display of the Username), (Testing Story Submission)
- getters, (Accessor Methods)
- global elements
- testing, (Testing the Display of Global Elements)
- global helpers, (Writing an ActionView Helper)
- global variables, (Variables and Constants)
- graceful degradation, (Adding Visual Effects with script.aculo.us)
- gsub
- use with Strings, (Strings)
- gunzip command, (Installing Ruby on Linux)
H
- has_and_belongs_to_many relationship, (Understanding Polymorphic Associations)
- has_many :through association, (Introducing the has_many :through Association), (Testing the Join Model Relationship)
- has_many clause, (Introducing the has_many Clause)
- Hash (class), (Hashes)
- methods, (Hashes)
- saving data to the database, (Saving Data to the Database)
- use with blocks, (Blocks)
- #{ } syntax, (Introducing RJS Templates)
- hash mark (#), (Dot Notation)
- #( ), (Strings)
- hashed password storage, (Creating a User)
- headless mode, (Revisiting the Rails Console)
- Heinemeier Hansson, David, (History), (Convention Over Configuration)
- helper class, (Understanding the Output)
- helper files, (Calling upon Our Trusty Helpers)
- helper_method statement, (Abstracting Code Using helper_method)
- helpers
- about, (Calling upon Our Trusty Helpers)
- form_for, (Introducing the form_for Helper)
- hexadecimal address, (Standard Output)
- highlighting effect, (Introducing RJS Templates)
- HTML
- in forms, (Analyzing the HTML)
- .html.erb file extension, (ActionView (the View))
- .html.erb templates, (Introducing RJS Templates), (Introducing Partials)
- HTTP
- and REST, (REST and the Web)
- as stateless protocol, (Identifying Individual Users)
- HTTP codes
- shortcuts, (Writing a Functional Test)
- HTTP GET, (Writing a Functional Test), (Ensuring Graceful Degradation), (Testing Page Rendering), (Testing Regular HTTP Voting), (Testing the Display of the Login Form), (Revisiting the Rails Console)
- HTTP POST, (Writing More Functional Tests), (Testing Vote Storage), (Revisiting the Rails Console)
- HTTP voting
- testing, (Testing Regular HTTP Voting)
I
- id
- for retrieval, (Retrieving Records)
- identifying individual users, (Identifying Individual Users)
- if clause, (Requiring a Login to Vote)
- if construct, (The if Construct)
- if statement modifier, (The if Construct)
- include file, (Analyzing the Skeleton File)
- include?
- use with Strings, (Strings)
- incrementing a variable (+=), (Class-level Functionality)
- indentation of code, (Instance Methods)
- index action, (Understanding the Output), (Starting Our Application … Again), (Writing a Functional Test), (Implementing the Voting Bin), (Testing the Routing Configuration), (Testing Page Headings)
- index.html.erb (file), (Understanding the Output)
- individual users
- identifying, (Identifying Individual Users)
- inheritance, (Inheritance), (Saving an Object)
- initialize (method), (Class-level Functionality)
- instance methods, (Instance Methods), (Styling the Voting History), (Tweaking the Voting History), (A Word on Filter Methods), (Testing Additions to the Counter Cache), (Making a Model Taggable), (Updating the story Partial)
- instance variables, (Object-level Functionality), (Instance Variables), (ActionView (the View)), (Passing Data Back and Forth)
- instant messaging systems, (Identifying Individual Users)
- InstantRails
- control panel, (Installing on Windows), (The Interactive Ruby Shell (irb))
- installing, (Installing on Windows)
- starting, (Creating the Standard Directory Structure)
- Integer (class), (Numerics), (Blocks)
- Integer object
- times method, (Blocks)
- upto method, (Blocks)
- integer values, (The Interactive Ruby Shell (irb))
- integer?
- use with Numeric subclasses, (Numerics)
- integration tests, (Integration Tests)
- creating the first test, (Creating Our First Integration Test)
- defined, (Integration Testing), (Testing the Form)
- functions, (Integration Tests)
- how they work, (Creating Our First Integration Test)
- in headless mode, (Revisiting the Rails Console)
- running, (Running an Integration Test)
- when to use?, (When to Use an Integration Test)
- interactive Ruby shell, (The Interactive Ruby Shell (irb)), (Running Ruby Files)
- interface, (Classes and Objects)
- interpreter, (Scripting Languages), (Running Ruby Files)
- (see also Ruby interpreter)
- irb (see interactive Ruby shell)
- irb output, (The Interactive Ruby Shell (irb))
J
- JavaScript include files, (Including the JavaScript Libraries)
- JavaScript libraries
- including in applications layout, (Including the JavaScript Libraries)
- Prototype, (Remote Scripting with Prototype), (Adding Visual Effects with script.aculo.us)
- script.aculo.us, (Adding Visual Effects with script.aculo.us)
- functionality, (Adding Visual Effects with script.aculo.us)
- jEdit (text editor), (Linux and Cross-platform Editors)
- join model relationship, (Introducing the Join Model Relationship)
- has_many :through association, (Introducing the has_many :through Association)
- testing, (Testing the Join Model Relationship)
- .js.rjs file extension, (ActionView (the View))
K
- keys
- use with Hash, (Hashes)
L
- last
- use with Arrays, (Arrays)
- last method, (Retrieving Records)
- latest_votes method, (Tweaking the Voting History), (Testing the Voting History Order)
- layout creation, (Creating a Layout)
- adding style, (Adding Some Style)
- establishing structure, (Establishing Structure)
- layouts (templates), (ActionView (the View)), (Creating a Layout)
- length
- use with strings, (Strings)
- lighttpd web server, (lighttpd)
- link attribute, (Writing a Unit Test)
- link column, (Retrieving Records)
- link_to function, (Pulling in a Model)
- Linux
- text editors, (Linux and Cross-platform Editors)
- Linux installation, (Installing on Linux)
- installing Rails, (Installing Rails on Linux)
- installing Ruby, (Installing Ruby on Linux)
- installing RubyGems, (Installing RubyGems on Linux)
- prerequisites, (Prerequisites)
- using a package manager, (Using a Package Manager)
- literal objects, (Literal Objects)
- log files
- about, (Revisiting the Logs)
- taking benchmarks from, (Taking Benchmarks from Log Files)
- log out (see logout)
- logged_in? helper method, (Requiring Users to Log In), (Introducing ActionView Helpers)
- logger, (Using the Rails Logging Tool)
- logger object, (Using the Rails Logging Tool)
- logging tool (Rails), (Using the Rails Logging Tool)
- login
- testing failed, (Testing a Failed Login)
- testing redirection after, (Testing Redirection After Login)
- testing successful, (Testing a Successful Login)
- login form, (Creating the View), (Adding Functionality to the Controller)
- testing display of, (Testing the Display of the Login Form)
- login functionality, (Developing Login Functionality)
- adding functionality to the controller, (Adding Functionality to the Controller)
- creating the controller, (Creating the Controller)
- creating the view, (Creating the View)
- Login link, (Allowing Users to Log Out)
- login method, (Redirecting the User), (Testing a Successful Login)
- login parameter, (Creating the View)
- login template, (Creating the View)
- login values
- adding functionality to the controller, (Adding Functionality to the Controller)
- logging, (Using the Rails Logging Tool)
- testing a successful login, (Testing a Successful Login)
- login_logout div, (Testing Display of the Username)
- login_reguired filter, (Protecting the Form), (Requiring Users to Log In)
- logout
- manual function for, (Allowing Users to Log Out)
- testing, (Testing a Logout)
- logout function, (Allowing Users to Log Out)
- Logout link, (Allowing Users to Log Out)
- logout parameter, (Creating the Controller)
- loops, (Loops)
- control structures, (Control Structures)
- for loop, (for Loops)
- while and until loops, (while and until Loops)
M
- Mac OS X 10.4 (Tiger) and earlier installation, (Mac OS X 10.4 (Tiger) and Earlier)
- command line, (Introducing the Command Line)
- installing Rails, (Installing Rails on a Mac)
- installing Ruby, (Installing Ruby on a Mac)
- installing RubyGems, (Installing RubyGems on a Mac)
- installing SQLite, (Installing SQLite on a Mac)
- installing Xcode, (Installing Xcode)
- prerequisites, (Installing Xcode)
- setting the path, (Setting the Path)
- staying organized, (Staying Organized)
- terminal window, (Introducing the Command Line)
- Mac OS X 10.5 (Leopard) installation, (Mac OS X 10.5 (Leopard))
- Mac OS X installation, (Installing on Mac OS X)
- Mac OS X text editors, (Mac OS X Text Editors)
- TextMate, (Mac OS X Text Editors)
- TextWrangler, (Mac OS X Text Editors)
- make tool (C program), (Using rake to Migrate Our Data)
- manual benchmarking, (Manual Benchmarking)
- many-to-many associations, (Defining Relationships Between Objects)
- map.story, (Improving the Story Randomizer)
- mapping
- new resources, (Mapping a New Resource)
- URLs, (Resources in Rails)
- MemCached Store session container, (The MemCached Store Session Container)
- method calls
- parentheses in, (Use of Parentheses)
- method notation, (Method Notation)
- methods
- defined, (Ruby Is an Object Oriented Language)
- in Ruby, (The Interactive Ruby Shell (irb))
- object interfaces, (Classes and Objects)
- migration files
- class definition in, (Creating a Skeleton Migration File)
- class methods, (Creating a Skeleton Migration File)
- defined, (Understanding the Output)
- filling in the gaps, (Creating the stories Table)
- modifying the schema, (Modifying the Schema Using Migrations)
- name and type of data storage, (Creating the stories Table)
- migrations
- creating for Vote model, (Examining the Vote Migration)
- defined, (Database Tables)
- to alter existing tables, (Creating the stories Table)
- to generate the counter cache, (Making Room for the Cache)
- to make alterations to your database, (Modifying the Schema Using Migrations)
- using rake to migrate data, (Using rake to Migrate Our Data), (Applying the Migration), (Generating a User Model), (Testing a Vote’s Relationship to a User), (Applying the Migration), (Adding a Model Attribute)
- mkdir command (make directory), (Staying Organized)
- mod_ruby extension, (The mod_ruby Extension)
- model callbacks, (Introducing Model Callbacks)
- model generator, (The Model Generator)
- running the generate Script, (Running the generate Script)
- sample output, (Running the generate Script)
- understanding the output, (Understanding the Output)
- YAML, (Understanding YAML)
- model testing (see testing the model)
- model-view-controller (MVC) architecture, (The Model-View-Controller Architecture)
- about, (Convention Over Configuration)
- ActionController module, (ActionController (the Controller))
- ActionPack library, (The ActionPack Module)
- ActionView module, (ActionView (the View))
- ActiveRecord module, (ActiveRecord (the Model))
- app subdirectory, (MVC the Rails Way)
- in theory, (MVC in Theory)
- processing a page request, (MVC in Theory)
- reasons for separating software application components, (MVC in Theory)
- software application components, (MVC in Theory)
- the Rails way, (MVC the Rails Way)
- Model.find method, (Adding Functionality to the Controller)
- modeling the user, (Modeling the User)
- models
- generating, (Generating a Model)
- in MVC, (MVC in Theory)
- Mongrel web server
- about, (Starting Our Application), (Mongrel)
- setting up Apache as web server for, (Setting up Apache)
- use on production database, (Moving to the Production System)
- mongrel_rails command, (Moving to the Production System), (Setting up Apache)
- mongrel_rails restart, (The ActiveRecord Store Session Container)
- MVC (see model-view-controller (MVC) architecture)
- MySQL database engine
- installing on Windows, (Installing on Windows)
N
- namespace
- acceptance by rake task, (Using rake to Migrate Our Data)
- naming classes and files, (ActionController (the Controller))
- naming template files, (ActionView (the View))
- navigation menu, (Adding a Navigation Menu), (Expanding the Navigation Menu)
- testing, (Testing the Navigation Menu)
- new action
- functional tests, (Writing More Functional Tests)
- new_record? method, (Writing More Functional Tests)
- nginx web server, (nginx)
- nil (return value), (Standard Output), (nil)
- Nil Class, (nil)
- Numeric (class), (Numerics)
- Numeric subclasses
- converting a value to a Float, (Numerics)
- converting a value to an Integer, (Numerics)
- functionality, (Numerics)
- types of numbers, (Numerics)
O
- object level functionality, (Object-level Functionality)
- accessor methods, (Accessor Methods)
- instance methods, (Instance Methods)
- instance variables, (Instance Variables)
- object oriented programming, (Ruby Is an Object Oriented Language)
- asking a simple question, (Ruby Is an Object Oriented Language)
- passing arguments, (Ruby Is an Object Oriented Language)
- sending instructions, (Ruby Is an Object Oriented Language)
- object oriented programming in Ruby, (Object Oriented Programming in Ruby)
- class-level functionality, (Class-level Functionality)
- classes and objects, (Classes and Objects)
- inheritance, (Inheritance)
- object-level functionality, (Object-level Functionality)
- return values, (Return Values)
- object receiver, (Dot Notation)
- objects, (Classes and Objects)
- (see also Ruby objects)
- about, (Ruby Is an Object Oriented Language)
- and classes, (Ruby Is an Object Oriented Language)
- and methods, (Ruby Is an Object Oriented Language), (Classes and Objects)
- and tables, (Database Tables)
- communication between, (Ruby Is an Object Oriented Language)
- in Ruby, (The Interactive Ruby Shell (irb))
- instance variables, (Instance Variables)
- interface, (Classes and Objects)
- relationships between, (Defining Relationships Between Objects)
- one-to-many associations, (Defining Relationships Between Objects)
- one-to-many relationship, (Introducing Relationships), (Introducing the has_many Clause), (Introducing the belongs_to Clause), (Understanding Polymorphic Associations)
- information storage in the database, (How’s Our Schema Looking?)
- one-to-one association, (Defining Relationships Between Objects)
- :only parameter, (Introducing Filter Conditions)
- OOP (see object oriented programming)
- Open Ruby Console, (The Interactive Ruby Shell (irb))
- operators
- assignment operator (=), (while and until Loops)
- equation operator (==), (while and until Loops)
- to increment a variable (+=), (Class-level Functionality)
- opinionated software, (Convention Over Configuration)
- :order argument, (Retrieving Records), (Tweaking the Voting History)
- ordering records in Rails, (Tweaking the Voting History)
- output
- from Ruby, (Standard Output)
P
- package manager
- apt-get, (Using a Package Manager)
- for Linux, (Installing on Linux), (Using a Package Manager)
- for Ruby software, (Installing RubyGems on Linux)
- rpm, (Using a Package Manager)
- yum, (Using a Package Manager)
- page headings
- testing, (Testing Page Headings)
- page object, (Introducing RJS Templates), (Styling the Voting History)
- page rendering
- testing, (Testing Page Rendering)
- paragraph element, (Writing More Functional Tests)
- parameters for blocks, (Blocks)
- params, (ActionView (the View))
- params hash, (Saving Data to the Database), (Adding Another Controller)
- params object, (Saving Data to the Database)
- parentheses, (Use of Parentheses)
- :partial, (Styling the Voting History)
- partials (templates), (Introducing Partials)
- adding voting history, (Adding Voting History)
- creating, (Creating the Partial)
- defined, (ActionView (the View))
- modifying, (Creating the Partial)
- rendering, (Modifying the View), (Creating the View)
- styling the voting history, (Styling the Voting History)
- tweaking the voting history, (Tweaking the Voting History)
- passing data back and forth, (Passing Data Back and Forth)
- passing variables between controllers and views, (Passing Data Back and Forth)
- password, (Adding Functionality to the Controller)
- password template, (Creating the View)
- password values, (Adding Functionality to the Controller), (Testing a Successful Login)
- password_field_tag helper, (Creating the View)
- PATH environment variable, (Setting the Path)
- period (.), (Dot Notation)
- plugin script, (What Is a Plugin?)
- usage instructions, (What Is a Plugin?)
- plugins
- acts_as_taggable, (Introducing the acts_as_taggable_on_steroids Plugin)
- functions, (What Is a Plugin?)
- installation, (What Is a Plugin?)
- README file, (What Is a Plugin?)
- what are they?, (What Is a Plugin?)
- pluralize helper, (Modifying the View), (Writing an ActionView Helper)
- += operator, (Class-level Functionality)
- polymorphic associations, (Understanding Polymorphic Associations)
- POST, (Writing More Functional Tests), (Testing Vote Storage), (Revisiting the Rails Console)
- post_with_user, (Testing Display of the Username), (Testing Story Submission)
- presentation logic, (Abstracting Presentation Logic)
- ActionView helpers, (Introducing ActionView Helpers)
- avoiding spaghetti, (Avoiding Presentation Logic Spaghetti)
- MVC principles, (ActionView (the View))
- print statement, (Standard Output)
- private methods, (A Word on Filter Methods)
- production environment, (Three Environments)
- choosing, (Choosing a Production Environment)
- back-end options, (Back-end Options)
- web server options, (Web Server Options)
- creating the database structure, (Moving to the Production System)
- does not log every database communication, (The Implications of “Production”)
- implications, (The Implications of “Production”)
- moving Shovell to, (Moving to the Production System)
- protected controller methods, (Implementing the Voting Bin), (Introducing ActionView Helpers), (Introducing Model Callbacks)
- protected methods, (A Word on Filter Methods)
- protecting the form, (Protecting the Form)
- abstracting code using helper_method, (Abstracting Code Using helper_method)
- requiring users to log in, (Requiring Users to Log In)
- protective measures, (Protective Measures)
- adding a navigation menu, (Adding a Navigation Menu)
- filters, (Introducing Filters)
- generating a user model, (Generating a User Model)
- login functionality, (Developing Login Functionality)
- managing user logins, (Managing User Logins)
- modeling the use, (Modeling the User)
- restricting the application, (Restricting the Application)
- sessions and cookies, (Introducing Sessions and Cookies)
- testing user authentication, (Testing User Authentication)
- protocols in resource-centric applications, (In Theory)
- Prototype JavaScript library, (Remote Scripting with Prototype), (Adding Visual Effects with script.aculo.us)
- prototype.js (file), (Including the JavaScript Libraries)
- proxy through, (Setting up Apache)
- ProxyRequests Off directive, (Setting up Apache)
- public methods, (A Word on Filter Methods)
- punctuation in Ruby code, (Punctuation in Ruby)
- chaining statements together, (Chaining Statements Together)
- dot notation, (Dot Notation)
- method notation, (Method Notation)
- use of parentheses, (Use of Parentheses)
- puts statement, (Standard Output)
- pwd command, (Introducing the Command Line)
R
- RadRails (text editor), (Linux and Cross-platform Editors)
- Rails, (Getting Started)
- as opinionated software, (Convention Over Configuration)
- built-in Ajax helpers, (Adding Visual Effects with script.aculo.us)
- code generation, (Code Generation)
- configuration files, (Convention Over Configuration)
- conventions, (Convention Over Configuration)
- debugging, (Debugging), (Debugging Your Application)
- default welcome page, (Setting the Default Page)
- history, (History)
- installing on Linux, (Installing Rails on Linux)
- installing on Mac OS X, (Installing Rails on a Mac)
- installing on Mac OS X 10.5 (Leopard), (Mac OS X 10.5 (Leopard))
- installing on Windows, (Installing on Windows)
- integrated support for email, (ActionMailer)
- log files, (Revisiting the Logs)
- logging tool, (Using the Rails Logging Tool)
- Prototype Javascript library, (Remote Scripting with Prototype)
- sessions in, (Sessions in Rails)
- supporting multiple databases in parallel, (The Database Configuration File)
- testing, (Testing)
- use of Ajax in web applications, (Remote Scripting with Prototype)
- use of MVC architecture, (MVC the Rails Way)
- visual effects with script.aculo.us, (Adding Visual Effects with script.aculo.us)
- what is it?, (Introducing Ruby on Rails), (Ajax and Rails)
- Rails applications
- architecture, (Choosing a Production Environment)
- database architecture, (The Database Configuration File)
- standard directory structure, (One Directory Structure to Rule Them All)
- rails command, (Creating the Standard Directory Structure), (Starting Our Application), (Understanding the Output)
- Rails Console, (Revisiting the Rails Console)
- about, (Using the Rails Console)
- creating records, (Creating Records)
- deleting records, (Deleting Records)
- headless mode, (Revisiting the Rails Console)
- retrieving records, (Retrieving Records)
- to manage data, (Managing Data Using the Rails Console)
- updating records, (Updating Records)
- Rails development principles, (Development Principles)
- Agile development, (Agile Development)
- convention over configuration, (Convention Over Configuration)
- don’t repeat yourself, (Don’t Repeat Yourself)
- Rails development repository, (History)
- Rails environments, (Three Environments)
- development, (Three Environments)
- production, (Three Environments)
- testing, (Three Environments)
- Rails framework, (Introducing Ruby on Rails), (History), (Getting Started), (Rails Revealed)
- Rails plugins, (Rails Plugins)
- Rails welcome screen, (Starting Our Application)
- rake command
- accepting a namespace, (Using rake to Migrate Our Data)
- moving to the production system, (Moving to the Production System)
- options accepted, (Using rake to Migrate Our Data)
- tasks available, (Using rake to Migrate Our Data)
- to create sessions table, (The ActiveRecord Store Session Container)
- to execute functional tests, (Running a Functional Test)
- to execute unit tests, (Running a Unit Test), (Running the Unit Tests)
- to migrate data, (Using rake to Migrate Our Data), (Applying the Migration), (Generating a User Model), (Testing a Vote’s Relationship to a User), (Applying the Migration), (Adding a Model Attribute)
- to revert to the previous version of the database, (Using rake to Migrate Our Data)
- to run integration tests, (Running an Integration Test)
- to run the complete test suite, (Running the Complete Test Suite), (Running the Full Test Suite), (Debugging using ruby-debug)
- use in production environment, (Moving to the Production System), (The ActiveRecord Store Session Container)
- rake test command, (Running an Integration Test)
- rake test:integration command, (Using Breakpoints in a Test)
- random stories
- retrieving, (Pulling in a Model)
- randomizer
- stories, (Improving the Story Randomizer)
- readers, (Accessor Methods)
- Readline, (Installing Ruby on a Mac)
- receiver, (Ruby Is an Object Oriented Language), (The Interactive Ruby Shell (irb))
- redirect_to function, (Ensuring Graceful Degradation)
- redirecting the user
- about, (Redirecting the User)
- testing after login, (Testing a Successful Login), (Testing Redirection After Login)
- redirection after logout
- testing, (Testing Redirection After Logout)
- redirection logic, (Tweaking the Redirection Logic)
- relationships between objects, (Introducing Relationships)
- belongs_to clause, (Introducing the belongs_to Clause)
- has_many clause, (Introducing the has_many Clause)
- remote scripting with Prototype, (Remote Scripting with Prototype)
- render, (Adding Voting History), (Styling the Voting History)
- render :partial syntax, (Adding Voting History)
- replace_html method, (Introducing RJS Templates)
- require command, (Analyzing the Skeleton File)
- resource-centric development, (The REST)
- resources
- declaring, (Resources in Rails)
- mapping, (Mapping a New Resource)
- respond_to clause, (Ensuring Graceful Degradation)
- RESTful routes
- adding custom actions, (Adding Custom Actions to RESTful Routes)
- RESTful-style (Representational State Transfer) development, (The REST)
- restricted functionality
- testing, (Testing Restricted Functionality)
- restricting access to story submission, (Restricting Access to Story Submission)
- filter conditions, (Introducing Filter Conditions)
- redirecting the user, (Redirecting the User)
- restricting the application, (Restricting the Application)
- associating stories with users, (Associating Stories with Users)
- protecting the form, (Protecting the Form)
- restricting access to story submission, (Restricting Access to Story Submission)
- retrieving records, (Retrieving Records)
- return values, (Ruby Is an Object Oriented Language), (The Interactive Ruby Shell (irb)), (Return Values), (Standard Output)
- :return_to URL, (Redirecting the User)
- return_to value, (Testing Redirection After Login)
- .rhtml file extension (see .html.erb file extension)
- ri command, (Arrays)
- .rjs file extension, (ActionView (the View)), (Introducing RJS Templates)
- (see also .js.rjs file extension)
- RJS templates
- about, (Introducing RJS Templates)
- approaches to, (Introducing RJS Templates)
- rendering, (Ensuring Graceful Degradation)
- styling the voting history, (Styling the Voting History)
- updating, (Updating the RJS Template)
- round
- use with Numeric subclasses, (Numerics)
- routing configuration, (Setting the Default Page), (Adding Another Controller)
- mapping URLs, (Resources in Rails)
- testing, (Testing the Routing Configuration)
- Ruby, (Introducing Ruby)
- as object oriented language, (Ruby Is an Object Oriented Language)
- as open source, object oriented scripted language, (Introducing Ruby on Rails)
- as scripting language, (Ruby Is a Scripting Language)
- checking version installed on Linux, (Installing Ruby on Linux)
- installing on Linux, (Installing Ruby on Linux)
- installing on Mac OS X 10.4 (Tiger) and earlier installation, (Installing Ruby on a Mac)
- installing on Mac OS X 10.5 (Leopard), (Mac OS X 10.5 (Leopard))
- installing on Windows, (Installing on Windows)
- method in, (The Interactive Ruby Shell (irb))
- object oriented programming in, (Object Oriented Programming in Ruby)
- standard output, (Standard Output)
- variables in, (Variables and Constants)
- Ruby classes, (Ruby Core Classes)
- Array, (Arrays)
- Bignum, (Numerics)
- Fixnum, (The Interactive Ruby Shell (irb)), (Numerics)
- Float, (Numerics)
- Hash, (Hashes)
- Integer, (Numerics), (Blocks)
- naming, (Database Tables)
- not reloaded on each request in the production environment, (The Implications of “Production”)
- Numeric, (Numerics)
- object oriented programming, (Classes and Objects)
- String, (Literal Objects), (Strings)
- Symbols, (Symbols)
- Ruby code
- about, (Introducing Ruby on Rails)
- embedding in HTML using ERb syntax, (ActionView (the View))
- indentation of, (Instance Methods)
- punctuation in, (Punctuation in Ruby)
- reading and writing, (Reading and Writing Ruby Code)
- Ruby control structures, (Control Structures)
- Ruby files
- running, (Running Ruby Files)
- ruby interactive (see ri command)
- Ruby interpreter, (Getting Started), (Running Ruby Files)
- Ruby objects
- about, (The Interactive Ruby Shell (irb)), (Classes and Objects)
- interacting with, (Interacting with Ruby Objects)
- literal objects, (Literal Objects)
- variables and constants, (Variables and Constants)
- Ruby on Rails (see Rails)
- Ruby shell (see interactive Ruby shell)
- ruby-debug tool, (Debugging), (Debugging using ruby-debug), (Summary)
- RubyGems
- installing on Linux, (Installing RubyGems on Linux)
- installing on Mac OS X, (Installing RubyGems on a Mac)
- confirmation of successful installation, (Installing RubyGems on a Mac)
- .rxml file extension (see xml.builder file extension)
S
- Save changes, (Saving Data to the Database)
- save method, (Saving an Object), (Tweaking the Redirection Logic), (Examining the Vote Migration), (Introducing Model Callbacks)
- saving an object, (Saving an Object)
- scaffolding
- to generate views, (Generating Views with Scaffolding)
- what is it?, (Generating Views with Scaffolding)
- scalability, (MVC in Theory)
- SCGI protocol, (The SCGI Protocol)
- schema, (Database Tables)
- scope of variables, (Variables and Constants)
- scoreboard styling, (Styling the Scoreboard)
- script folder, (Code Generation)
- script.aculo.us JavaScript library, (Adding Visual Effects with script.aculo.us)
- scripting languages, (Scripting Languages)
- performance against compiled languages, (The Great Performance Debate)
- search engine friendly URLs, (Features of the Example Application)
- self.down (class method), (Creating a Skeleton Migration File), (Examining the Vote Migration), (Making Room for the Cache)
- self.up (class method), (Creating a Skeleton Migration File), (Making Room for the Cache)
- semicolon (;), (Chaining Statements Together)
- sender, (Ruby Is an Object Oriented Language), (The Interactive Ruby Shell (irb))
- session container
- storing ActiveRecord objects, (Adding Functionality to the Controller)
- storing objects, (Sessions in Rails)
- session cookies, (What’s a Session?)
- session hashes, (ActionView (the View))
- session name, (Sessions in Rails)
- session security, (Retrieving the Current User)
- session storage containers, (Alternatives for Session Storage)
- ActiveRecord Store, (The ActiveRecord Store Session Container)
- MemCached Store, (The MemCached Store Session Container)
- session values
- retrieval, (Sessions in Rails)
- sessions
- in Rails, (Sessions in Rails)
- physical location of, (Sessions in Rails)
- what are they?, (What’s a Session?)
- sessions table, (The ActiveRecord Store Session Container)
- SessionsController, (Creating the Controller), (Testing the Controllers), (Testing a Logout), (Testing Redirection After Logout)
- setters, (Accessor Methods)
- shell
- ruby-debug, (Moving Around in the Shell)
- shortcuts
- for cryptic HTTP codes, (Writing a Functional Test)
- shove it link, (Styling the Scoreboard), (Storing the Votes), (Introducing RJS Templates), (Styling the Voting History), (Tweaking the Voting History), (Requiring a Login to Vote)
- "Shovell" project
- allowing users to add a story description, (Expanding the Submission Form)
- completed login form, (Adding Functionality to the Controller)
- controllers, (ActionController (the Controller))
- creating the database structure, (Moving to the Production System)
- deploying, (Deploying Shovell)
- directory structure, (Creating the Standard Directory Structure)
- displaying the current user, (Displaying the Name of the Current User)
- empty front page, (Setting the Default Page)
- example of user page, (Creating the View)
- final story page with voting history, (Tweaking the Voting History)
- finished show action, (Displaying Our Stories)
- generate model script, (Running the generate Script)
- hiding the voting link from visitors, (Requiring a Login to Vote)
- index page linking to story page, (Improving the Story Randomizer)
- listing all stories tagged with “rails”, (Updating the Style Sheet)
- login template, (Creating the View)
- making a template for, (Creating the Template)
- moving to the production system, (Moving to the Production System)
- name of story’s submitter displayed with the story, (Displaying the Submitter)
- new story form with a layout, (Adding Some Style)
- providing feedback after story submission, (Retrieving Data from the Flash)
- proxied through Apache, (Setting up Apache)
- Rails console, (Using the Rails Console)
- served by Mongrel, (Moving to the Production System)
- showing a story with voting history, (Styling the Voting History)
- showing a story with voting score and vote link, (Styling the Scoreboard)
- story index with navigation, (Adding a Navigation Menu)
- story submission form with validation output, (Improving the User Experience)
- story voting bin, (Expanding the Navigation Menu)
- story with auto-generated permalink, (Expanding the Submission Form)
- successfully logging out of the application, (Allowing Users to Log Out)
- tags display for the new story, (Assigning Our First Tags)
- transferring to production system, (Moving to the Production System)
- viewing stories on the front page, (Requiring a Login to Vote)
- show action, (Testing Page Rendering)
- show method, (ActionView (the View)), (Determining Where a Story Lives)
- show template, (Adding Voting History)
- show view
- changing, (Giving Stories a Shove)
- Showing ... string, (Writing an ActionView Helper)
- showing off our stories, (Displaying Our Stories)
- Simple Common Gateway Interface (SCGI) protocol, (The SCGI Protocol)
- size
- use with Arrays, (Arrays)
- use with Hash, (Hashes)
- size method, (Using a Counter Cache)
- skeleton file
- analyzing
- controller test, (Analyzing the Skeleton File)
- model test, (Analyzing the Skeleton File)
- slice
- use with Strings, (Strings)
- software cost, (What Does All This Cost?)
- source code
- reloading, (Reloading Source Code)
- <span> tag, (Giving Stories a Shove)
- SQL statements
- for development environment, (Where’s the SQL?)
- SQLite database engine, (Getting Started)
- installing on Mac OS X, (Installing SQLite on a Mac)
- stack traces, (Three Environments), (The Implications of “Production”), (Errors by Email)
- stand-alone helper, (Creating the Template)
- standard directory structure
- conventions, (One Directory Structure to Rule Them All)
- creating, (Creating the Standard Directory Structure)
- starting our application, (Starting Our Application)
- stateless protocol
- defined, (Identifying Individual Users)
- resource-centric applications, (In Theory)
- statement modifiers
- if, (The if Construct)
- unless, (The unless Construct)
- static pages
- creating, (Creating Static Pages)
- stories
- abstracting presentation logic, (Abstracting Presentation Logic)
- adding attributes to, (Adding a Model Attribute)
- adding custom actions, (Adding Custom Actions to RESTful Routes)
- adding user pages, (Adding User Pages)
- determining URLS and actions, (Determining Where a Story Lives)
- displaying, (Displaying Our Stories)
- displaying votes, (Giving Stories a Shove)
- implementing clean URLs, (Implementing Clean URLs)
- implementing the front page, (Implementing the Front Page)
- implementing the voting bin, (Implementing the Voting Bin)
- making Shove-able, (Making Stories Shove-able)
- requiring that users log in to vote, (Requiring a Login to Vote)
- selecting on basis of voting scores, (Promoting Popular Stories)
- story randomizer, (Improving the Story Randomizer)
- testing advanced functionality, (Testing the New Functionality)
- testing display of by tag, (Testing the Display of Stories by Tag)
- testing finding of by tag, (Testing the Finding of a Story by Tag)
- viewing by tag, (Viewing Stories by Tag)
- with auto-generated permalink, (Expanding the Submission Form)
- Stories Controller
- generating, (Running the generate Script)
- stories.yml (fixture file), (Understanding the Output)
- stories_controller.rb (file), (Understanding the Output)
- stories_controller_test.rb (file), (Understanding the Output)
- StoriesController
- accessing from a browser, (Starting Our Application … Again)
- modifying, (Modifying the Controller), (Requiring a Login to Vote)
- testing, (Testing the StoriesController)
- StoriesController class
- displaying the submitter, (Displaying the Submitter)
- fetch_stories method, (Manual Benchmarking)
- instantiation of, (Starting Our Application … Again)
- sample class definition, (ActionController (the Controller))
- show method, (Determining Where a Story Lives)
- storing the submitter, (Storing the Submitter)
- testing redirection after logout, (Testing Redirection After Logout)
- testing the controller, (Testing the Controllers)
- testing the display of username, (Testing Display of the Username)
- storing the votes, (Storing the Votes)
- Story class
- adding relationship definitions to, (Adding Relationships for the User Class)
- story display page
- testing, (Testing the Story Display Page)
- story index pages
- testing, (Testing the Story Index Pages)
- @story instance variable, (Creating the Template), (Modifying the Controller)
- Story Model, (Running the generate Script)
- making it taggable, (Making a Model Taggable)
- testing, (Testing the Model)
- @story object, (Introducing the form_for Helper), (Creating the Template)
- story page
- testing display of tags on, (Testing the Display of Tags on a Story Page)
- story partial, (Creating the View)
- updating, (Updating the story Partial)
- story submission, (Enabling Story Submission)
- creating a form, (Creating a Form)
- creating a layout, (Creating a Layout)
- providing feedback after, (Retrieving Data from the Flash)
- resources in Rails, (Resources in Rails)
- template creation, (Creating the Template)
- testing, (Testing Story Submission)
- user feedback and the flash, (Enabling User Feedback with the Flash)
- story submission form
- allowing users to add a story description, (Expanding the Submission Form)
- debugging within templates, (Debugging within Templates)
- expanding, (Adding a Description to Stories)
- testing, (Testing the Story Submission Form)
- testing the display, (Testing the Display of the Story Submission Form)
- with tags, (Assigning Our First Tags)
- testing, (Testing the Submission of a New Story with Tags)
- with validation output, (Improving the User Experience)
- story submitter
- displaying, (Displaying the Submitter)
- storing, (Storing the Submitter)
- testing display of, (Testing the Display of the Story Submitter)
- testing storage of, (Testing Storage of the Submitter)
- story submitter link text
- testing, (Testing the Story Submitter Link Text)
- Story.find :all, (Making Room for the Cache), (Modifying the Controller)
- story.rb (file), (Understanding the Output)
- @story.user, (Displaying the Submitter)
- story_helper.rb (file), (Understanding the Output)
- story_test.rb (file), (Understanding the Output)
- story_type, (Writing an ActionView Helper)
- story_url function, (Improving the Story Randomizer)
- StoryTest class, (Analyzing the Skeleton File)
- Story’s relationship to Vote model, (Testing a Story’s Relationship to a Vote)
- String class, (Strings)
- converting to Symbols, (Symbols)
- literal objects, (Literal Objects)
- methods, (Strings)
- string literal, (Literal Objects), (Variables and Constants), (Strings)
- String object, (Literal Objects), (Strings)
- string objects
- converting to number objects, (Converting from Strings to Numbers)
- style (layouts), (Adding Some Style)
- style sheet
- applying to an application, (Adding Some Style)
- creating the view, (Creating the View)
- layout creation, (Establishing Structure)
- updating, (Updating the Style Sheet)
- styling
- front page, (Styling the Front Page)
- voting history, (Styling the Voting History)
- submission form
- expanding, (Expanding the Submission Form)
- Submit button, (Creating the Template), (Analyzing the HTML)
- submitter (see story submitter)
- Subversion (version control systems), (Subversion)
- :success symbol, (Writing a Functional Test)
- successful login, (Testing a Successful Login)
- sudo, (Installing Ruby on a Mac), (Installing Rails on Linux)
- Symbols (class), (Symbols)
- advantages over Strings, (Symbols)
- converting to Strings, (Symbols)
T
- tables, (Database Tables)
- (see also database tables)
- relationship with objects, (Database Tables)
- Tag class, (Making a Model Taggable)
- tag display
- creating a tag partial, (Creating a tag Partial)
- enabling, (Enabling Tag Display)
- updating the story partial, (Updating the story Partial)
- updating the style sheet, (Updating the Style Sheet)
- tag partial, (Creating a tag Partial)
- tag submission, (Enabling Tag Submission)
- tag_id, (Creating a Migration for the Plugin)
- tag_list, (Making a Model Taggable), (Updating the story Partial), (Testing the Submission of a New Story with Tags)
- taggable_id, (Creating a Migration for the Plugin)
- taggable_type, (Creating a Migration for the Plugin)
- tagged stories
- displaying, (Displaying Tagged Stories)
- testing tag action for listing, (Testing the show Action of TagsController)
- tagging, (Features of the Example Application), (Adding Tagging to Shovell)
- tagging functionality
- running the test suite, (Running the Test Suite ... Again!)
- testing, (Testing the Tagging Functionality)
- testing the controller, (Testing the Controller)
- testing the model, (Testing the Model)
- taggings table, (Creating a Migration for the Plugin)
- tags
- assigning first, (Assigning Our First Tags)
- testing display of on story page, (Testing the Display of Tags on a Story Page)
- testing display of stories by tag, (Testing the Display of Stories by Tag)
- testing finding of stories by tag, (Testing the Finding of a Story by Tag)
- viewing stories by, (Viewing Stories by Tag)
- tags table, (Creating a Migration for the Plugin)
- tar command, (Installing Ruby on Linux)
- template files
- creating, (Displaying Our Stories)
- extensions, (ActionView (the View))
- naming and storage, (ActionView (the View))
- template rendering, (Creating the View)
- testing, (Testing the Rendering of Templates)
- templates
- creating, (Creating the Template)
- debugging within, (Debugging within Templates)
- layouts, (ActionView (the View))
- partials, (ActionView (the View))
- stories, (Displaying Our Stories)
- temporary working directory, (Staying Organized)
- test-driven development (TDD), (Testing the Form)
- test types, (Testing the Form)
- test_should_show_index test, (Writing a Functional Test), (Writing More Functional Tests)
- test_should_show_new_form, (Testing the Display of the Story Submission Form)
- test_truth method, (Using Assertions), (Writing a Unit Test), (Analyzing the Skeleton File)
- testing a failed login, (Testing a Failed Login)
- testing a logout, (Testing a Logout)
- testing a story’s relationship to a vote, (Testing a Story’s Relationship to a Vote)
- testing a successful login, (Testing a Successful Login)
- testing a vote’s relationship to a story, (Testing a Vote’s Relationship to a Story)
- testing additions to the counter cache, (Testing Additions to the Counter Cache)
- testing advanced functionality, (Testing the New Functionality)
- running the complete test suite, (Running the Complete Test Suite)
- testing the model, (Testing the Model)
- testing the StoriesController, (Testing the StoriesController)
- testing the UsersController, (Testing the UsersController)
- testing Ajax voting, (Testing Ajax Voting)
- testing deletions from the counter cache, (Testing Deletions from the Counter Cache)
- testing display of the username, (Testing Display of the Username)
- testing environment (Rails), (Three Environments)
- testing page headings, (Testing Page Headings)
- testing page rendering, (Testing Page Rendering)
- testing redirection after login, (Testing Redirection After Login)
- testing redirection after logout, (Testing Redirection After Logout)
- testing regular HTTP voting, (Testing Regular HTTP Voting)
- testing restricted functionality, (Testing Restricted Functionality)
- testing storage of the submitter, (Testing Storage of the Submitter)
- testing story submission, (Testing Story Submission)
- testing the assignment of tags, (Testing the Assignment of Tags)
- testing the controller, (Testing the Controller)
- analyzing the skeleton file, (Analyzing the Skeleton File)
- functional tests for new action, (Writing More Functional Tests)
- running a functional test, (Running a Functional Test)
- writing a functional test, (Writing a Functional Test)
- testing the controller (tagging functionality), (Testing the Controller)
- testing the display of stories by tag, (Testing the Display of Stories by Tag)
- testing the display of tags on a story page, (Testing the Display of Tags on a Story Page)
- testing the display of the story submission form, (Testing the Display of the Story Submission Form)
- testing the submission of a new story with tags, (Testing the Submission of a New Story with Tags)
- testing the tag action for listing tagged stories, (Testing the show Action of TagsController)
- testing the controller (user authentication), (Testing the Controllers)
- testing a failed login, (Testing a Failed Login)
- testing a logout, (Testing a Logout)
- testing a successful login, (Testing a Successful Login)
- testing display of the username, (Testing Display of the Username)
- testing redirection after login, (Testing Redirection After Login)
- testing redirection after logout, (Testing Redirection After Logout)
- testing storage of the submitter, (Testing Storage of the Submitter)
- testing story submission, (Testing Story Submission)
- testing the display of global elements, (Testing the Display of Global Elements)
- testing the display of the login form, (Testing the Display of the Login Form)
- testing the display of the story submitter, (Testing the Display of the Story Submitter)
- testing the controller (voting functionality), (Testing the Controller)
- testing Ajax voting, (Testing Ajax Voting)
- testing page rendering, (Testing Page Rendering)
- testing regular HTTP voting, (Testing Regular HTTP Voting)
- testing vote storage, (Testing Vote Storage)
- testing the creation of the initial vote, (Testing the Creation of the Initial Vote)
- testing the display of global elements, (Testing the Display of Global Elements)
- testing the display of stories by tag, (Testing the Display of Stories by Tag)
- testing the display of tags on a story page, (Testing the Display of Tags on a Story Page)
- testing the display of the login form, (Testing the Display of the Login Form)
- testing the display of the story submission form, (Testing the Display of the Story Submission Form)
- testing the display of the story submitter, (Testing the Display of the Story Submitter)
- testing the finding of a story by tag, (Testing the Finding of a Story by Tag)
- testing the form, (Testing the Form)
- controller testing, (Testing the Controller)
- model testing, (Testing the Model)
- running the complete test suite, (Running the Complete Test Suite)
- testing the join model relationship, (Testing the Join Model Relationship)
- testing the model, (Testing the Model)
- analyzing the skeleton file, (Analyzing the Skeleton File)
- new functionality, (Testing the Model)
- running a unit test, (Running a Unit Test)
- user authentication, (Testing the Model)
- using assertions, (Using Assertions)
- writing a unit test, (Writing a Unit Test)
- testing the model (tagging functionality), (Testing the Model)
- testing the assignment of tags, (Testing the Assignment of Tags)
- testing the finding of a story by tag, (Testing the Finding of a Story by Tag)
- testing the model (voting functionality), (Testing the Model)
- preparing the fixtures, (Preparing the Fixtures)
- running the unit tests, (Running the Unit Tests)
- testing a story’s relationship to a vote, (Testing a Story’s Relationship to a Vote)
- testing a vote’s relationship to a story, (Testing a Vote’s Relationship to a Story)
- testing the voting history order, (Testing the Voting History Order)
- testing the navigation menu, (Testing the Navigation Menu)
- testing the rendering of templates, (Testing the Rendering of Templates)
- testing the routing configuration, (Testing the Routing Configuration)
- testing the StoriesController, (Testing the StoriesController)
- testing the story display page, (Testing the Story Display Page)
- testing the story index pages, (Testing the Story Index Pages)
- testing the story submission form, (Testing the Story Submission Form)
- testing the story submitter link text, (Testing the Story Submitter Link Text)
- testing the submission of a new story with tags, (Testing the Submission of a New Story with Tags)
- testing the tag action for listing tagged stories, (Testing the show Action of TagsController)
- testing the tagging functionality, (Testing the Tagging Functionality)
- testing the UsersController, (Testing the UsersController)
- testing the VotesController, (Testing the VotesController)
- testing the voting functionality, (Testing the Voting Functionality)
- controller testing, (Testing the Controller)
- model testing, (Testing the Model)
- running the full test suite, (Running the Full Test Suite)
- testing the voting history order, (Testing the Voting History Order)
- testing user authentication, (Testing User Authentication)
- testing user voting history, (Testing User Voting History)
- testing vote storage, (Testing Vote Storage)
- testing your application, (Testing Your Application)
- integration tests, (Integration Tests)
- using breakpoints, (Using Breakpoints in a Test)
- tests (of assertions), (Using Assertions)
- text editors, (Which Text Editor?)
- ConTEXT, (Windows Text Editors)
- cross-platform, (Linux and Cross-platform Editors)
- Emacs, (Linux and Cross-platform Editors)
- jEdit, (Linux and Cross-platform Editors)
- Linux, (Linux and Cross-platform Editors)
- Mac OS X, (Mac OS X Text Editors)
- RadRails, (Linux and Cross-platform Editors)
- TextMate, (Mac OS X Text Editors)
- TextWrangler, (Mac OS X Text Editors)
- UltraEdit, (Windows Text Editors)
- Vim, (Linux and Cross-platform Editors)
- text_area helper, (Expanding the Submission Form)
- text_field method, (Introducing the form_for Helper)
- text_field_tag, (Creating the View), (Modifying the View)
- textarea element, (Expanding the Submission Form)
- TextMate (text editor), (Mac OS X Text Editors), (TextMate Integration)
- textual identifiers, (Symbols)
- TextWrangler (text editor), (Mac OS X Text Editors)
- 37signals, (History)
- tilde, (Introducing the Command Line)
- times method of an Integer object, (Blocks)
- timing values (log files), (Revisiting the Logs)
- title of the story, (Creating the Partial)
- to_formatted_s, (Styling the Voting History)
U
- UltraEdit (text editor), (Windows Text Editors)
- unit tests
- about, (Testing the Form)
- error information, (Running a Unit Test)
- failed test, (Running a Unit Test)
- running, (Running a Unit Test), (Running the Unit Tests), (Running the Unit Tests)
- successful test, (Running a Unit Test)
- writing, (Writing a Unit Test)
- unless condition, (Displaying the Name of the Current User)
- unless construct, (The unless Construct)
- unless statement modifier, (The unless Construct)
- until, (while and until Loops)
- up method, (Creating a Skeleton Migration File)
- upcase method, (Method Notation)
- update_attribute method, (Updating Records), (Making Room for the Cache)
- :updated_at, (Examining the Vote Migration)
- updating records, (Updating Records)
- upto method of an Integer object, (Blocks)
- URLs
- mapping to controllers and actions, (Resources in Rails)
- for stories, (Determining Where a Story Lives), (Implementing Clean URLs)
- URLs in resource-centric applications, (In Theory)
- user authentication, (Testing User Authentication)
- running the full test suite, (Running the Full Test Suite)
- testing the controllers, (Testing the Controllers)
- testing the model, (Testing the Model)
- User class, (Adding Relationships for the User Class)
- adding relationships to, (Adding Relationships for the User Class)
- user feedback, (Improving the User Experience)
- information on type and place of error, (Improving the User Experience)
- validation errors, (Improving the User Experience)
- user log out, (Allowing Users to Log Out)
- user logins, (Managing User Logins)
- allowing users to log out, (Allowing Users to Log Out)
- displaying the name of the current user, (Displaying the Name of the Current User)
- retrieving the current user, (Retrieving the Current User)
- user model, (Introducing the has_many :through Association)
- adding relationships to the User class, (Adding Relationships for the User Class)
- creating a User, (Creating a User)
- database table creation, (Generating a User Model)
- generating, (Generating a User Model)
- testing a user's relationship to a story, (Testing a User’s Relationship to a Story)
- testing authentication, (Testing the Model)
- preparing the fixtures, (Preparing the Fixtures)
- running the unit tests, (Running the Unit Tests)
- testing a story’s relationship to a user, (Testing a Story’s Relationship to a User)
- testing a user’s relationship to a story, (Testing a User’s Relationship to a Story)
- testing a user’s relationship to a vote, (Testing a User’s Relationship to a Vote)
- testing a vote’s relationship to a user, (Testing a Vote’s Relationship to a User)
- User object
- adding functionality to the controller, (Adding Functionality to the Controller)
- creating, (Creating a User)
- modifying the controller, (Adding Another Controller)
- user pages
- adding, (Adding User Pages)
- creating the view, (Creating the View)
- has_many :through association, (Introducing the has_many :through Association)
- join model relationship, (Introducing the Join Model Relationship)
- modifying the controller, (Adding Another Controller)
- user registration system, (Features of the Example Application)
- user voting history
- testing, (Testing User Voting History)
- username
- adding functionality to the controller, (Adding Functionality to the Controller)
- creating the view, (Creating the View)
- testing display of, (Testing Display of the Username)
- users
- associating stories with, (Associating Stories with Users)
- necessity to log in to vote, (Requiring a Login to Vote)
- redirecting, (Redirecting the User)
- requiring them to log in, (Requiring Users to Log In)
- UsersController, (Adding Another Controller)
- testing, (Testing the UsersController)
V
- validation errors, (Improving the User Experience)
- validations, (Tweaking the Redirection Logic)
- and redirection logic, (Tweaking the Redirection Logic)
- applying, (Applying Validations)
- values
- use with Hash, (Hashes)
- variables, (Variables and Constants)
- class, (Class-level Functionality)
- global, (Variables and Constants)
- instance, (Object-level Functionality), (Instance Variables)
- scope of, (Variables and Constants)
- verbs, (In Theory), (REST and the Web), (REST in Rails)
- version control systems, (Version Control and Deployment Management)
- version numbers of installed components, (Starting Our Application)
- vertical bars (|)
- placement before blocks, (Blocks)
- view template
- filling in, (Filling in the View Template)
- viewing stories by tag
- displaying tagged stories, (Displaying Tagged Stories)
- filling in the view template, (Filling in the View Template)
- modifying the controller, (Creating the Controller)
- views
- communication with controllers via instance variables, (ActionView (the View))
- creating, (Creating a View), (Creating the View)
- creating dynamic pages, (Creating Dynamic Pages)
- creating static pages, (Creating Static Pages)
- generating with scaffolding, (Generating Views with Scaffolding)
- modifying, (Modifying the View), (Modifying the View), (Modifying the View)
- in MVC, (MVC in Theory)
- passing data back and forth, (Passing Data Back and Forth)
- pulling in a model, (Pulling in a Model)
- Vim (text editor), (Linux and Cross-platform Editors)
- visual effects with script.aculo.us, (Adding Visual Effects with script.aculo.us)
- Vote class
- adding relationship definitions to, (Adding Relationships for the User Class)
- Vote class definition, (Introducing the belongs_to Clause)
- Vote model, (Tweaking the Voting History)
- applying the migration, (Applying the Migration)
- association with Story model, (Introducing Relationships), (Introducing the has_many Clause), (Introducing the belongs_to Clause), (How’s Our Schema Looking?)
- creating the migration, (Examining the Vote Migration)
- creating the model, (Creating the Model)
- generating, (Generating a Vote Model)
- relationship to a story, (Testing a Vote’s Relationship to a Story)
- Vote object, (Introducing the has_many Clause), (Testing the Voting History Order), (Using a Counter Cache), (Making Room for the Cache)
- vote storage
- testing, (Testing Vote Storage)
- votes
- auto-voting for newly submitted stories, (Auto-voting for Newly Submitted Stories)
- controlling where they go, (Controlling Where the Votes Go)
- displaying, (Giving Stories a Shove)
- incremented when a new vote is added, (Testing Additions to the Counter Cache)
- need to reload database when votes added, (Testing Additions to the Counter Cache)
- storing, (Storing the Votes)
- votes method, (Introducing the has_many Clause), (Testing a Story’s Relationship to a Vote), (Requiring a Login to Vote)
- votes_count, (Making Room for the Cache), (Modifying the Controller), (Testing Additions to the Counter Cache), (Testing Deletions from the Counter Cache), (Preparing the Fixtures)
- VotesController
- testing, (Testing the VotesController)
- VotesController class
- graceful degradation, (Ensuring Graceful Degradation)
- voting bin, (Implementing the Voting Bin)
- voting functionality
- testing, (Testing the Voting Functionality)
- testing the controller, (Testing the Controller)
- testing the model, (Testing the Model)
- voting history
- adding, (Adding Voting History)
- styling, (Styling the Voting History)
- testing the order, (Testing the Voting History Order)
- tweaking, (Tweaking the Voting History)
- voting scores
- selecting stories on basis of, (Promoting Popular Stories)
W
- Web 2.0
- adding tagging, (Adding Tagging to Shovell)
- and Ajax, (Introducing Ajax)
- web application
- definition, (Introducing Ruby on Rails)
- Web applications
- and REST, (REST and the Web)
- web browsers
- not supporting Ajax, (Adding Visual Effects with script.aculo.us)
- web server options, (Web Server Options)
- WEBrick web server, (Starting Our Application)
- (see also Mongrel web server)
- while loops, (while and until Loops)
- Windows firewall, (Installing on Windows)
- Windows installation, (Installing on Windows)
- Windows text editors
- ConTEXT, (Windows Text Editors)
- UltraEdit, (Windows Text Editors)
- writers, (Accessor Methods)
X
- Xcode
- installing, (Installing Xcode)
- XcodeTools.mpkg, (Installing Xcode)
- .xml.builder file extension, (ActionView (the View))
- xml_http_request method, (Testing Ajax Voting)
- XmlHttpRequest object, (Introducing Ajax)
Y
- YAML, (Understanding YAML), (Debugging within Templates)
- YAML file, (Understanding YAML)
- yield command, (Establishing Structure)
Z
- zero?
- use with Numeric subclasses, (Numerics)
About SitePoint
SitePoint specializes in publishing fun, practical and easy-to-understand content for Web professionals. Visit sitepoint.com to access our books, newsletters, articles and community forums.