Question

La conception d'une application Web avec une section d'administration et une section de public face. On se sent comme avoir un contrôleur public face juste pour « index » et « show » est un peu redondant. Toutes les suggestions que j'ai lu suggèrent un espace de noms pour admin, ce qui est bien. Je me demande si je devrais avoir un contrôleur avec une action d'addition, dites « list_public » ou quelque chose comme ça.

Je suis nouveau avec Rails, alors peut-être que je suis préoccupé par rien. Je n'aime pas l'idée d'avoir tous ces contrôleurs, vues, aides avec le même nom éparpillés dans mes répertoires de projet.

Quelqu'un a une idée à ce sujet? Merci à l'avance.

Était-ce utile?

La solution

Je dirais d'avoir les deux contrôleurs (un public et un admin) est la meilleure solution.

Maintenant, ce que vous pouvez faire est d'avoir à la fois les contrôleurs appellent la même méthode qui effectue les actions connexes dans les actions.

class MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
  end
end

class Admin::MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
    # Admin only stuff goes here
  end
end

Autres conseils

Comme Matt dit, mais vous pouvez aussi faire ceci:

class MyController < ApplicationController
  def show
    MyModel.do_all_sorts_of_stuff
  end
end

class Admin::MyController < MyController
  def show
    super
    # Admin only stuff goes here
  end
end

Cela signifie que vous pouvez simplement se concentrer sur les cas plus spécialisés pour Admin :: MyController plutôt que le code à répéter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top