Я бы настроил периодический прослушиватель (этот код использует библиотеку прототипов):
new PeriodicalExecuter(function(pe) {
new Ajax.Request('/controllername/get_all_notes_by_page', {
onSuccess: function(response) {
// compare response value with some global variable
}
});
}, 300);
и на стороне контроллера:
def get_all_notes_by_page
respond_to do |format|
format.js { render :text => Page.find(params[:page_id]).notes.count.to_s }
end
end
Этот метод контроллера достаточно тонкий, но если вы действительно хотите сделать его короче, вы можете определить метод count_notes
в модели страницы.