procurar vs procurar por vs onde

Sou novo nos carris. O que eu vejo é que há muitas maneiras de encontrar um registro: find_by_<columnname>(<c ... alue> } where(<columnname> => <columnvalue>) Existe uma regra ou recomendação sobre qual deles usar?