database maintenance, updating tables having has_many_through relationships

Is this something you'd like to maintain automatically, or just do once? You remember how to use the console (if the latter)?

Picture.find_each do |pic|
  pic.update caption: pic.item.caption

If you want to do it every time you save a new picture, then you can add a similar helper to the Picture model, and call it in a before_save callback:

def cache_caption
  self.caption = item.caption

before_save :cache_caption