Another HUGE way to avoid `if` statements, at least those that I see a lot of, is to use your database and model your data really well to avoid "anomalies" (i.e. invalid data). For whatever reason, Rails eschews this, but if you have well-crafted check constraints, unique indexes, etc., you don't need to check for valid data before proceeding.
You just proceed and if the data turns out to be invalid, your code fails, and you find out about it.