I ended up going with option 1. I created a migration to add a comments field to the version table and added the following to CandidatesController#update
if @candidate.update(candidate_params)
#Add comments if they are available
@candidate.reload.versions.last.update(comments: params[:comments]) unless params[:comments].empty?
It seems to be working great but I'd appreciate any other thoughts that you have!