RailsSpace: Building a Social Networking Website with Ruby on Rails

Paperback (Print)
Buy New
Buy New from BN.com
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 96%)
Other sellers (Paperback)
  • All (21) from $1.99   
  • New (6) from $6.88   
  • Used (15) from $1.99   


Ruby on Rails is fast displacing PHP, ASP, and J2EE as the development framework of choice for discriminating programmers, thanks to its elegant design and emphasis on practical results. RailsSpace teaches you to build large-scale projects with Rails by developing a real-world application: a social networking website like MySpace, Facebook, or Friendster.

Inside, the authors walk you step by step from the creation of the site's virtually static front page, through user registration and authentication, and into a highly dynamic site, complete with user profiles, image upload, email, blogs, full-text and geographical search, and a friendship request system. In the process, you learn how Rails helps you control code complexity with the model-view-controller (MVC) architecture, abstraction layers, automated testing, and code refactoring, allowing you to scale up to a large project even with a small number of developers.

This essential introduction to Rails provides

  • A tutorial approach that allows you to experience Rails as it is actually used
  • A solid foundation for creating any login-based website in Rails
  • Coverage of newer and more advanced Rails features, such as form generators, REST, and Ajax (including RJS)
  • A thorough and integrated introduction to automated testing

The book's companion website provides the application source code, a blog with follow-up articles, narrated screencasts, and a working version of the RailSpace social network.

Read More Show Less

Product Details

  • ISBN-13: 9780321480798
  • Publisher: Addison-Wesley
  • Publication date: 8/3/2007
  • Series: Addison-Wesley Professional Ruby Series
  • Pages: 537
  • Sales rank: 1,069,769
  • Product dimensions: 6.87 (w) x 9.12 (h) x 1.10 (d)

Meet the Author

Michael Hartl is a programmer and entrepreneur. Before discovering Rails, he used Zope/Python in a startup he cofounded to produce fantasy sports websites, including BracketManager, at the time the number one independent NCAA Basketball Tournament website. Previously, he was a physics instructor at the California Institute of Technology, where he received the Lifetime Achievement Award for Excellence in Teaching. He also served as Caltech's editor for The Feynman Lectures on Physics: The Definitive and Extended Edition (Addison-Wesley). He is a graduate of Harvard College and has a Ph.D. in physics from Caltech.

Aurelius Prochazka is a pioneer of interactive, user-driven websites and has founded several companies, including Creative Internet Design, Inc., and ArsDigita Corporation. After working extensively with many operating systems and web frameworks, he happily calls Macintosh OS X and Ruby on Rails his preferred programming environments. Aurelius is the principal developer of Caltech's main website, as well as its admissions and alumni sites. He is a graduate of Rensselaer Polytechnic Institute and has a Ph.D. in computational fluid dynamics from Caltech.

Read More Show Less

Table of Contents

List of figures xvii

Acknowledgments xxi

Chapter 1 Introduction 1

1.1 Why Rails? 1

1.2 Why this book? 3

1.3 Who should read this book? 4

1.4 A couple of Rails stories 5

Part I Foundations 11

Chapter 2 Getting Started 13

2.1 Preliminaries 13

2.2 Our first pages 20

2.3 Rails views 26

2.4 Layouts 28

2.5 Developing with style 38

Chapter 3 Modeling users 43

3.1 Creating the User model 43

3.2 User model validations 51

3.3 Further steps to ensure data integrity (?) 63

Chapter 4 Registering users 65

4.1 A User controller 65

4.2 User registration: The view 66

4.3 User registration: The action 77

4.4 Linking in Registration 90

4.5 An example user 95

Chapter 5 Getting started with testing 97

5.1 Our testing philosophy 98

5.2 Test database configuration 98

5.3 Site controller testing 99

5.4 Registration testing 103

5.5 Basic User model testing 111

5.6 Detailed User model testing 115

Chapter 6 Logging in and out 131

6.1 Maintaining state with sessions 131

6.2 Logging in 134

6.3 Logging out 146

6.4 Protecting pages 150

6.5 Friendly URL forwarding 156

6.6 Refactoring basic login 164

Chapter 7 Advanced login 181

7.1 So you say you want to be remembered? 181

7.2 Actually remembering the user 192

7.3 “Remember me” tests 203

7.4 Advanced tests: Integration testing 209

7.5 Refactoring redux 215

Chapter 8 Updating user information 225

8.1 A non-stub hub 226

8.2 Updating the email address 226

8.3 Updating password 229

8.4 Testing user edits 237

8.5 Partials 245

Part II Building a social network 253

Chapter 9 Personal profiles 255

9.1 A user profile stub 256

9.2 User specs 260

9.3 Editing the user specs 266

9.4 Updating the user hub 277

9.5 Personal FAQ: Interests and personality 288

9.6 Public-facing profile 299

Chapter 10 Community 303

10.1 Building a community (controller) 303

10.2 Setting up sample users 304

10.3 The community index 308

10.4 Polishing results 320

Chapter 11 Searching and browsing 327

11.1 Searching 327

11.1.1 Search views 328

11.1.2 Ferret 330

11.2 Testing search 341

11.3 Beginning browsing 343

11.4 Location, location, location 350

Chapter 12 Avatars 365

12.1 Preparing for avatar upload 365

12.2 Manipulating avatars 373

Chapter 13 Email 389

13.1 Action Mailer 389

13.2 Double-blind email system 399

Chapter 14 Friendships 411

14.1 Modeling friendships 411

14.2 Friendship requests 420

14.3 Managing friendships 426

Chapter 15 RESTful blogs 437

15.1 We deserve a REST today 438

15.2 Scaffolds for a RESTful blog 445

15.3 Building the real blog 454

15.4 RESTful testing 473

Chapter 16 Blog comments with Ajax 479

16.1 RESTful comments 479

16.2 Beginning Ajax 485

16.3 Visual effects 495

16.4 Debugging and testing 501

Chapter 17 What next? 505

17.1 Deployment considerations 505

17.2 More Ruby and Rails 515

Index 517

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)