Rails-Controller-Entwurfsmuster für das Dashboard

9

Ich möchte eine Dashboard-Seite haben, die Informationen von mehreren Modellen zu einer Übersichtsansicht sammelt (ohne eigenes Modell). Wie soll ich den Rails Weg gehen? Sollte ich einen Dashboard_controller mit nur Indexaktion erstellen?

Danke.

    
AdamNYC 23.09.2011, 18:41
quelle

5 Antworten

1

Was Sie wollen, ist, einen Blick auf die Administrations-Frameworks zu werfen und zu sehen, ob das Ihre Bedürfnisse löst. Ich mag Typus und RailsAdmin Ansonsten würden Sie sich die Presenter-Muster und wie es für Rails und Ihre Anwendung gilt. Ein Dashboard würde im Grunde nur mit Ihren vorhandenen Modellen und Controller-Logik interagieren, da Sie nicht mit einer Situation enden möchten, in der Sie zwei Logiksätze für jedes Modell haben. Während der Blog, mit dem ich verlinkt habe, aus 2007 stammt, sollten Sie in der Lage sein, einige nützliche Informationen daraus zu ziehen und die Idee zu bekommen, was Sie tun müssen.

Wenn Sie irgendwelche Fragen haben, zögern Sie nicht zu fragen.

    
Devin M 23.09.2011, 19:08
quelle
4

denke nur ein bisschen weniger Rails. Ich nehme an, Ihr Dashboard enthält hauptsächlich Widgets? d. h. einige in sich geschlossene Elemente, was auch immer? Warum nicht diese Widgets zu deinem Modell machen (nicht auf AR-Basis). kapseln Sie Ihre gesamte Logik und Datenabfrage in Ihr (e) Widget-Modell (e) ein. Wenn Sie nun RESTful werden möchten, können Sie beispielsweise eine WidgetsController mit einer index Aktion als Dashboard erstellen. In einem zweiten Schritt können Sie Ihre Show-Aktion verwenden, um JSON-Daten für jedes Widget für AJAX-Teile Ihres Dashboards bereitzustellen. usw.

Denken Sie nur daran, dass REST nicht unbedingt == CRUD ist und ein Model kein ActiveRecord-Modell sein muss. Rails zwingt dich in das MVC-Muster, was eine großartige Sache ist, und macht sogar schlecht geschriebene Rails-Apps besser als eine Menge PHP-Chaos dort draußen, aber manchmal vergessen wir, dass es außerhalb von ActionController + ActiveRecord usw. viele Möglichkeiten gibt .

    
Marian Theisen 23.09.2011 19:33
quelle
0
  

Soll ich einen Dashboard_controller mit nur Indexaktion erstellen?

Ich bevorzuge es, Seiten, die CRUD nicht ausführen, auf einem Modell (z. B. Dashboards) im application_controller zu platzieren. Sie müssen keinen Dashboard_controller erstellen.

    
Ben 23.09.2011 19:11
quelle
0

Wäre das ein Anwendungsfall für das Moderatormuster ?

Ich bin dabei, ein ddashboard zu implementieren, und das ist das beste Design, das meiner Meinung nach zu einer wartbaren Codebasis führen wird.

    
ontk 27.06.2012 23:20
quelle
0

Meine Lösung besteht darin,

auszuführen %Vor%

Erstellen Sie dann manuell ein Modell app / models / dashboard.rb, dessen Inhalt so klein wie

sein kann %Vor%

Natürlich können Sie mit dem Modell die gesamte Logik verwenden, die Sie benötigen, um Daten von anderen Modellen zu fischen.

Zurück zum Controller, Sie erstellen nur die Indexaktion. Zuletzt erstellen Sie die Datei app / views / dashboards / index.html.erb mit dem von Ihnen benötigten Inhalt. Fügen Sie die Route hinzu und es geht Ihnen gut. Wenn Sie auf Details achten, können Sie die URL von / Dashboards in / Dashboard ändern. Das ist es, ich denke es ist sehr Rails-y.

    
Marek Maurizio 09.07.2013 12:28
quelle