You can use update_attributes inside of downvote to eliminate the save call. The not-using update_attributes in the controller was the main win.