На моей модели Вопроса у меня есть несколько областей действия
scope :recent, order("created_at DESC")
scope :approved, where("status = ?", "approved")
scope :answered, approved.recent.where("answers_count > ?", 0)
На моем контроллере вопросов я получаю вопросы, используя области действия
пример 1:
@questions = Question.approved.recent
пример 2:
@questions = User.find(session[:user_id]).topics.map { |t| t.questions.approved.recent }.flatten.uniq
Я пытаюсь поместить will_paginate в мою модель, чтобы упростить работу контроллера, но 2-й пример очень сложен, так как использует отображение для получения вопросов в соответствии с предпочтениями.
Я пытался добавить это на моей модели
def self.pagination(page = 1)
self.paginate(:page => page, :per_page => 5)
end
и затем на моем контроллере у меня есть
@questions = Question.approved.recent.pagination.(params[:page])
Это хорошо работает для 1-го примера, но я не знаю, как реализовать это на 2-м примере
Есть подсказки?