We should look at this more generically. What is normally done is that there are methods in the application controller called "require_user" and "require_admin", etc... The coach is just a type of user and probably doesn't need it's own. Any controller can then do:
before_action :require_user
or
before_action :require_admin
respectively.

Then for any public controllers that don't require any logged in users, we just leave it out.

For coach vs. student, that's really a roles concern (authorization), vs. login (authentication).