So, my gut is telling me that a `Vote` object wants to emerge in order to preserve the restful nature of the application. By adding these upvote/downvote methods we're encoding the interaction and not the data representation; which isn't *bad* (it's far simpler than creating another object, for instance) but it also means that something else *could* exist in this space.

Also, instead of answer.update_attributes, wouldn't `answer.downvote!` or `answer.upvote!` be slightly clearer?  It'd also make it easier to test the `downvote!` and `upvote!` functionality in isolation because you could test it through the model instead of the UI or controller.