Probably asked and answered, but...
Why are controller instance variables visible in the block passed to render :update, but controller private methods are not?
Because at the end of the day it's the same as rendering any old template: instances variables are copied across into a magic object, which is not the controller (and so controller private methods are not available)
Fred