Frage

Entwerfen einer Web-App mit einem Admin-Bereich und einer öffentlich zugänglichen Seite. Es fühlt sich an wie eine öffentlich zugängliche Steuerung mit nur für „Index“ und „Show“ ist ein bisschen überflüssig. Alle Vorschläge, die ich gelesen habe, deuten darauf hin, einen Namespace für admin, was in Ordnung ist. Ich frage mich nur, wenn ich einen Controller mit einem Zusatz Aktion haben sollte, sagen Sie „list_public“ oder so ähnlich.

Ich bin neu mit Rails, vielleicht bin ich einfach nichts besorgt. Ich mag es nicht nur die Idee, all diese Controller, Ansichten, Helfer mit dem gleichen Namen am ganzen Projektverzeichnissen verteilt.

Wer noch keine Einsicht dazu? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Ich würde sagen, beide Controller mit (einem öffentlichen und einem admin) ist die beste Lösung.

Nun, was Sie tun können, ist sowohl die Controller die gleiche Methode aufrufen, die die damit verbundenen Aktionen in den Aktionen der Fall ist.

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

Andere Tipps

Wie Matt sagte, aber Sie können dies auch tun:

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

Das bedeutet, dass Sie nur auf den spezielleren Fällen für Admin konzentrieren können :: MyController anstatt Code zu wiederholen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top