Use "if" and "present?" instead of "unless" and "blank?". It's much easier to parse mentally, especially for people who didn't write the code. :)
You don't need to use "self" to access latitude, longitude, updated_at, etc. You only need to use it for assignment.
You don't need to call #to_s on the captured exception. When you interpolate an object into a string, Ruby calls #to_s on the supplied object itself, e.g., "I am an #{Object}".
I'd probably also add a "has_posts" scope to Category and use that instead of the #where call in ApplicationController.