Related to the Liskov Substitution Principle and the Principle of Least Surprise, I think needing to use `User.find_by_slug!` is an issue.

The contract of `ActiveRecord::Base` is that values returned from `#to_param` are valid values to pass to `.find`. This means that, if you override `#to_param` in a way that it doesn't work with the default `.find`, you should also override `.find`.

Thoughts?