Logic and Conditionals

Classes, variables, and simple methods may carry some basic applications a surprisingly long way, but most applications need more logic. This quick tour through Ruby’s control structures will give you more tools for building your applications.


Your program logic will depend on combining variables with operators into expressions. Those expressions then get resolved into results, which may be used to assign values to variables, or to give an answer about whether a test passed or failed. Most Ruby operators should look familiar if you’ve ever used a programming language before. The following table shows an abbreviated list of operators you’re likely to encounter in your first forays into Rails.




Addition, concatenation, making numbers positive

Subtraction, removing from collections, making numbers negative






Modulo (remainder from integer division)




Exponentiation (2**3 is 8, 10**4 is 1000)


Shift bits left, or add to a collection


Less than


Less than or equal to


Greater than or equal to


Greater than


General comparison—less then yields –1, equal returns 0, greater than 1, and not comparable nil


Equal to (note that a single = is just assignment and always returns true)


Tests to see whether objects are of same class


Not equal to


Tests a regular expression pattern for a match (see Appendix C)


Tests a regular expression pattern for no match


Boolean AND (use to combine test expressions)


Boolean OR


Boolean ...

Get Learning Rails now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.