How about each tab Ajax-linking (link_to <...>, :remote => true) to documents, participants, comments controllers' respective index actions, which render render inline content via Ajax call to a dedicated space (under "tabs") and doing all the other stuff of marking the correct tab "active"?
For example "Documents tab" (not tested, basically a concept): link_to "Documents", contact_documents_path(@contact), :remote => true
then you'd have documents#index action and documents/index.js.haml template that'd populate #tab_content div which is just under your general Contact information, as you described; the entry point would be contacts#show action; you'd assign @contact there.
And you nest the resources something like:
resources :contacts do
resources :documents
resources :participants
resources: comments
end
Just brainstorming, feel free to disregard ;)