Рельсы, использующие модель - PullRequest
0 голосов
/ 21 октября 2010

Я работаю над приложением rails, которое со стороны вида делает Ajax-вызов каждые 5 минут или около того контроллеру, чтобы проверить, есть ли какие-либо новые сообщения, созданные для конкретного пользователя.Теперь я знаю, что способ Rails (или MVC в этом отношении) состоит в том, чтобы использовать Fat Models / Skinny Controllers, как бы я назвал свою модель с моего контроллера, чтобы данные возвращались в модель?

Здесьмой контроллер:

def get_all_notes_by_page
    if request.xhr?
      return Note.where("page_id = ?", params[:page_id]).count
    end
  end

Заранее спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 21 октября 2010
if request.xhr?
  Note.count_by_page_id(params[:page_id])
end
0 голосов
/ 21 октября 2010

Я бы настроил периодический прослушиватель (этот код использует библиотеку прототипов):

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 в модели страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...