Estruture condicionais corretamente, rápido -> lento

Sempre coloque condicionais que não acionam consultas SQL em primeiro lugar em uma condicional. Ao invés de:

if @post.author.posts.count > 1 && @post.published?
...
end

Coloque essas condicionais mais rápidas primeiro, para que se retornem falsas, o outro código não será executado:

if @post.published? && @post.author.posts.count > 1
...
end

A mesma regra se aplica a métodos lentos. Coloque os mais rápidos primeiro, depois os mais lentos por último. por exemplo

if @post.published? && @post.calculate_rank > 5.0
...
end