Undefined variable locale ou de la méthode `params' pour Presenter

J'ai un index de la vue qui devenait légèrement plus volumineux, donc j'ai déplacé toutes les requêtes DB dans un présentateur d'essayer et de faire le ménage.

Cependant, l'utilisation de params[:quelque chose] avec n'importe quelle requête rend le présentateur d'erreur avec:

undefined local variable or method params for QuestionPresenter:0x007fd6d569c158

J'ai essayé de déplacer les paramètres dans les méthodes d'aide à applicationcontroller, et les modèles, mais sans succès.

Comment puis-je faire de ces params disponible pour le présentateur? Ou sont les présentateurs ne vise pas à faire face à de tels params?

Vieux question_controller.rb

def index       
   if params[:tag]
      @questions = @question.tagged_with(params[:tag]).paginate(page: params[:page], per_page: 20)
    elsif params[:search]
      @questions = @question.paginate(page: params[:page], per_page: 20).search(params[:search])
    else
      @newest = @questions.newest.paginate(page: params[:page], per_page: 2)
      @unanswered = @question.unanswered.paginate(page: params[:page], per_page: 2).search(params[:search])
      @votes = @question.by_votes.paginate(page: params[:page], per_page: 2).search(params[:search])
  end 
end

QuestionsController.rb ( nouvelle action index)

def index
  @presenter = QuestionPresenter.new
end

question_presenter.rb

class QuestionPresenter
  def initialize
    @questions = Question
    @tags = Tag
  end

  def questions
    @questions.paginate(page: params[:page], per_page: 20).search(params[:search])
  end

  def tags
   @tags.joins(:taggings).select('tags.*, count(tag_id) as "tag_count"').group(:tag_id).order(' tag_count desc')
  end

  def tagged_questions
    @questions.tagged_with(params[:tag])
  end

  def newest
    @questions.newest.paginate(page: params[:page], per_page: 20)
  end

  def unanswered
    @questions.unanswered.paginate(page: params[:page], per_page: 20)
  end

  def votes
    @questions.by_votes.paginate(page: params[:page], per_page: 20)
  end
end

index.html.erb

<%= render partial: "questions/tag_cloud", locals: {tags: @presenter.tags} %>

<% if params[:search] %> 
  <%= render partial: "questions/questions", locals: {questions: @presenter.questions} %>
<% elsif params[:tag] %>
  <%= render partial: "questions/questions", locals: {questions: @presenter.tagged_questions}%>
<% else %>
  <%= render partial: "questions/tabbed_index", locals: {questions: @presenter.newest, unanswered: @presenter.unanswered, votes: @presenter.votes} %>
<% end %>